图像ROI与ROI操作

知识点:

ROI解释:


图像的 ROI(region of interest) 是指图像中感兴趣区域、在 OpenCV 中图像设置图像 ROI 区域,实现只对 ROI 区域的操作。

提取不规则ROI区域的一般步骤:


1、通过inRange函数生成mask

2、通过与操作提取ROI

#ifndef DAY16
#define DAY16
 
#include <opencv2/opencv.hpp>
#include <iostream>
 
using namespace std;
using namespace cv;
 
void day16() {
 
	Mat src = imread("G://opencvTest//scene.jpg");
	namedWindow("input", WINDOW_AUTOSIZE);
	imshow("input", src);
	int h = src.rows;
	int w = src.cols;
 
	// 获取ROI
	int cy = h / 2;
	int cx = w / 2;
	Rect rect(cx - 100, cy - 100, 200, 200);
	Mat roi = src(rect);
	imshow("roi", roi);
 
	Mat image = roi.clone();
	// 直接更改ROI,因为是直接赋值的,指向同一块内存区域,所以原图也会被修改
	roi.setTo(Scalar(255, 0, 0));
	imshow("result", src);
 
	// 更改拷贝的ROI,指向不同的内存区域,所以原图不受影响
	image.setTo(Scalar(0, 0, 255));
	imshow("result2", src);
	imshow("copy roi", image);
 
	// 获取不规则形状的ROI,通过inRange函数
	Mat src2 = imread("G://opencvTest//tinygreen.jpg");
	imshow("src2", src2);
	Mat hsv, mask;
	cvtColor(src2, hsv, COLOR_BGR2HSV);
	inRange(hsv, Scalar(35, 43, 46), Scalar(77, 255, 255), mask);
	imshow("mask", mask);
 
	// 通过mask提取人物部分,即我们的ROI。mask的白色区域才会执行与操作,黑色区域不执行
	Mat person;
	bitwise_not(mask, mask);
	bitwise_and(src2, src2, person, mask);
	imshow("person", person);
 
	// 生成一张蓝色背景
	Mat result = Mat::zeros(src2.size(), src2.type());
	result.setTo(Scalar(255, 0, 0));
 
	// 将蓝色背景与ROI融合
	Mat dst;
	bitwise_not(mask, mask);
	bitwise_or(result, result, dst, mask);
	add(dst, person, dst);
 
	imshow("dst", dst);
 
	waitKey();
}
 
#endif // !DAY16



————————————————

版权声明:本文为CSDN博主「Apple_Coco」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Apple_Coco/article/details/94334105


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864