opencv 亮度对比度、通道选择、平滑度调节代码片2020-09-05 11:42:13

( 还没有投票,继续加油! )
分享:
31.3K
//亮度对比度调节
 int g_nContrastValue = 80;//对比度
 int g_nBrightValue = 50;//亮度
 for (int y = 0; y < imgOriginal.rows; y++) {
   for (int x = 0; x < imgOriginal.cols; x++) {
     for (int c = 0; c < 3; c++) {
       imgOriginal.at<Vec3b>(y, x)[c] = saturate_cast<uchar>((g_nContrastValue*0.01)*(imgOriginal.at<Vec3b>(y, x)[c]) + g_nBrightValue);
     }
   }
 }


//图片通道选择
Mat imageGB(dframe.size(), CV_8UC3);
vector<Mat> channels; //vector<Mat>: 可以理解为存放Mat类型的容器(数组)
split(dframe, channels); //对原图像进行通道分离,即把一个3通道图像转换成为3个单通道图像channels[0],channels[1] ,channels[2]
vector<Mat> mbgr(3);
Mat hideChannel(dframe.size(), CV_8UC1, Scalar(0));
mbgr[0] = channels[0];
mbgr[1] = channels[1];//改为hideChannel,将只用上面一个蓝色通道,当前是蓝绿两色通道,BGR
mbgr[2] = hideChannel;
merge(mbgr, imageGB);



//修正平滑度
 vector<vector<Point>> contours,contours2;
  vector<Vec4i> hierarchy;
  findContours(dstImage,contours,hierarchy,RETR_TREE,CHAIN_APPROX_SIMPLE,Point(-1,-1));
    contours2.resize(contours.size());//点集逼近修正柔和度
    for( size_t k = 0; k < contours.size(); k++ )
      approxPolyDP(Mat(contours[k]), contours2[k], 5, true);//3精度(原、近似曲线最大距离)
    drawContours(dstImage, contours2, -1, Scalar(0,0,255), 1, 8, hierarchy);







头像

snowcoal
  • opencv
  • 亮度
  • 对比度
  • 通道
  • 平滑度

收藏到我的私密空间

标题: opencv 亮度对比度、通道选择、平滑度调节代码片

作者:花花世界

你暂未登录,请登录后才可收藏至您的私密空间 确认取消
雪炭网

键盘操作 更便捷 -雪炭网雪中送炭-乐趣无限

如果本站的内容有幸帮助到了您,建议您了解一下当页的广告内容哦,我们的进步离不开您的支持,Thank you~