学习《opencv中感兴趣区域以及mask的使用》
2017-05-13 19:42
253 查看
学习《opencv中感兴趣区域以及mask的使用》学习笔记,http://blog.csdn.net/dengtaocs/article/details/38022153
在图像处理的过程中,我们时常需要对指定区域或目标进行操作,这个区域我们称之为感兴趣区域。在学习OpenCV的初级阶段,对于感兴趣区域的操作方法是必须要掌握的。
比如下图:
我们获取到一帧图像Img,它里面有两个目标,一个蓝色块和一个红色块,我们一般会经常碰到以下三种情况:
(1)我们希望将Img中的蓝色目标提取出来并另存为一个图像;
(2)我们希望将Img中不是蓝色目标的其他目标都隐藏起来,只显示蓝色目标,或只对蓝色目标的区域进行图像处理。
(3)我们只希望对Img中红色目标区域进行处理。
原代码如下:
结果如下:
原始img:
img1--感兴趣的区域ROI:
img2:
img3:
mask区域:
在图像处理的过程中,我们时常需要对指定区域或目标进行操作,这个区域我们称之为感兴趣区域。在学习OpenCV的初级阶段,对于感兴趣区域的操作方法是必须要掌握的。
比如下图:
我们获取到一帧图像Img,它里面有两个目标,一个蓝色块和一个红色块,我们一般会经常碰到以下三种情况:
(1)我们希望将Img中的蓝色目标提取出来并另存为一个图像;
(2)我们希望将Img中不是蓝色目标的其他目标都隐藏起来,只显示蓝色目标,或只对蓝色目标的区域进行图像处理。
(3)我们只希望对Img中红色目标区域进行处理。
原代码如下:
#include<opencv2\core\core.hpp> #include<opencv2\highgui\highgui.hpp> #include<opencv2\imgproc\imgproc.hpp> using namespace cv; using namespace std; int main() { Mat img, img1,img2,img3,mask; img=imread("img/3.jpg"); //掩模mask跟图像大小一样,且单通道,把所有像素设为0,黑色 mask=Mat::zeros(img.size(),CV_8UC1); //将ROI区域设为255(白色) Rect ROI(380,220,280,80); mask(ROI).setTo(255); img1=img(ROI); img.copyTo(img2,mask);//带掩模mask的复制 img.copyTo(img3); img3.setTo(0,mask);//带掩模mask的设置 namedWindow("0"); imshow("0",img); namedWindow("1"); imshow("1",img1); namedWindow("2"); imshow("2",img2); namedWindow("3"); imshow("3",img3); namedWindow("4"); imshow("4",mask); waitKey(); return 0; }
结果如下:
原始img:
img1--感兴趣的区域ROI:
img2:
img3:
mask区域:
相关文章推荐
- opencv中感兴趣区域以及mask的使用
- opencv中感兴趣区域以及mask的使用
- opencv中感兴趣区域以及mask的使用
- 【OpenCV学习笔记】【编程实例】四(获取一个或多个感兴趣区域)
- 【OpenCV学习笔记】【函数学习】十九(感兴趣区域)
- 学习openCV之读取图像和感兴趣区域融合
- OpenCV学习(三)使用mask添加水印
- OPENCV学习笔记1-7_定义感兴趣区域
- OpenCV学习笔记8_ShowROI_显示感兴趣区域
- opencv2感兴趣区域以及图像尺寸求解
- opencv学习-定义感兴趣区域
- opencv学习(2)滑动条的创建和使用
- OpenCV中寻找轮廓函数cvFindContours的使用说明以及序列cvSeq的用法说明
- OpenCV 2 学习笔记(25): 使用分水岭分割图像
- Android学习之路------自定义视图,以及canvas、paint的使用
- opencv在iOS中的使用[几个滤波]以及uiimage与iplimage互转
- 【从0到1学习Java线程池】Java线程池的简介以及使用
- 汇编学习-在代码段使用数据以及多段的使用
- 一只菜鸟的Qt学习路程(QList的使用以及LNK1196错误)
- opencv 网站tutorials学习翻译 --使用图形处理函数