opencv 灰度图(感兴趣(ROI)区域)_三通道图像融合
在进行图像操作时,为加快图像的处理速度,往往需要对图像的局部进行操作,一般是设置ROI区域,然后对ROI区域进行二值化,在对灰度图进行特征的检测与提取。此方法可以大大加快图像处理的速度。
本博文结合opencv进行编写。程序如下:
cv::Mat GrayROIAddRGB(cv::Mat src)
{
int x = 230;
int y = 90;
int width = 160;
int height = 160;
Mat imageROI = src(Rect(x,y,width,height));
//imshow("ROI", imageROI);
Mat mask = imageROI;
cvtColor(mask,mask,CV_RGB2GRAY);
threshold(mask,mask,80,255,THRESH_BINARY);
cvtColor(mask,mask,CV_GRAY2BGR);
//imshow("threshold", mask);
for( int i = 0; i < imageROI.rows; ++i)
{
Vec3b * p = imageROI.ptr<Vec3b>(i);
for( int j = 0; j < imageROI.cols; ++j )
{
p[j][0] = 0;
p[j][1] = 0;
p[j][2] = 0;
}
}
mask.copyTo(imageROI,mask);
return src;
}
实验图如下:
1.原图
2.效果图