Opencv视觉学习--创建三通道图像、将目标区域叠加在三通道图像上

对于刚开始学习Opencv的朋友们,查找资料是自学最好的方式。
这一篇博客,我将介绍利用Opencv创建三通道图像、将目标区域叠加在三通道图像上的操作方法,如有问题或建议可留言于我,谢谢!
更多资料请点击:我的目录

Mat roi_img (image.rows, image.cols, CV_8UC3, Scalar::all(0));//创建与image像素大小相等的三通道图像

    for(int row=0;row<image.rows;row++)                         //对图像的行进行遍历
    {
        for(int col=0;col<image.cols;col++)								 //对图像的列进行遍历
        {
            if(  )         //条件设定
            {
                roi_img.at<Vec3b>(row,col)[0]=250;       //分别对三通道进行颜色定义
                roi_img.at<Vec3b>(row,col)[1]=0;
                roi_img.at<Vec3b>(row,col)[2]=50;
            }

解析:

Mat roi_img (image.rows, image.cols, CV_8UC3, Scalar::all(0));

创建roi_img图像,像素大小与image的rows(行)和cols(列)相等,CV_8UC3即三通道图像,Scalar::all(0))黑色为自定义的颜色,设定时也可写成Scalar(0,0,0)。

 roi_img.at<Vec3b>(row,col)[0]=150;  
 roi_img.at<Vec3b>(row,col)[1]=150;
 roi_img.at<Vec3b>(row,col)[2]=150;

.at(int y, int x)可以用来存取图像中对应坐标为(x,y)的元素坐标。
Vec3b 为RGB三通道彩色图像(一个uchar类型的数组,长度为3)
color[0]=150; //[0]为第一通道,B蓝色分量,并将其值设定为150;
color[1]=150; //[1]为第二通道,G绿色分量,并将其值设定为150;
color[2]=150; //[2]为第三通道,R红色分量,并将其值设定为150;

更多资料请点击:我的目录

发布了75 篇原创文章 · 获赞 35 · 访问量 5940

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/103816198