opencv 亮度对比度、通道选择、平滑度调节代码片2020-09-05 11:42:13
( 还没有投票,继续加油! )
//亮度对比度调节 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);
版权声明:
作者信息(Author) :雪炭网 : 花花世界
原文链接(Hyperlink):https://snowcoal.com/article/75995.html
原创内容,尊重版权,转载需注明出处;商业及其他特殊用途转载需原作者同意。
原文链接(Hyperlink):https://snowcoal.com/article/75995.html
原创内容,尊重版权,转载需注明出处;商业及其他特殊用途转载需原作者同意。