前面写过关于如何取roi感兴趣区域的博客,但里面还有一些细节没有交代,今天再次记录。

问题如下:
如果直接取roi区域,之后对该区域的操作都会影响原图像,见示例

#include<iostream>
#include<opencv2\opencv.hpp>using namespace std;
using namespace cv;int main()
{Mat img = imread("D:\\photogallery\\人物\\image_5.png");Rect roi(100, 100, 200, 200);rectangle(img, roi, Scalar(0, 0, 255), 2);Mat src = img(roi);//对roi区域像素取反bitwise_not(src, src);imshow("img", img);imshow("src", src);waitKey(0);return 0;
}

出现上述现象是因为直接创建Mat对象取roi区域,实际取出的地址就是原图的地址。
所以为了改变这种现象,使取出后的区域不会影响原图,应使用克隆操作。
见代码示例

#include<iostream>
#include<opencv2\opencv.hpp>using namespace std;
using namespace cv;int main()
{Mat img = imread("D:\\photogallery\\人物\\image_5.png");Rect roi(100, 100, 200, 200);rectangle(img, roi, Scalar(0, 0, 255), 2);Mat src = img(roi).clone();//对roi区域像素取反bitwise_not(src, src);imshow("img", img);imshow("src", src);waitKey(0);return 0;
}

可以看出对roi区域的操作已经不会影响原图。

【opencv】ROI进阶相关推荐

  1. OpenCV笔记—进阶篇(图像效果处理)

    OpenCV笔记-进阶(图像效果处理) 此章节是基于本人OpenCV笔记-基础篇的延续,如果对此章节有疑惑的话,可以先看基础篇学习一下. 通过此篇可以学习到美图秀秀等P图软件实现图片效果原理及实现过程 ...

  2. 【第二部分 图像处理】第3章 Opencv图像处理进阶-【1 图像处理D-图像金字塔】(imgproc组件、feature2D组件)

    1.6图像金字塔 1.6.1关于图像金字塔 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构. 图像金字塔最初用于机器视觉和图像压缩,一幅图像 ...

  3. c++ opencv roi

    最新的: cv::Mat img; a= cv::Mat m0 = img(cv::Rect(i0, i1, w, h)) 以前的: //opencv #include "opencv2/o ...

  4. openCV ROI

    import threadingimport cv2 as cv import time import numpy as npclass ROI9527():def __init__(self):pa ...

  5. openCV ROI

    #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv ...

  6. 使用 OpenCV 和 Tesseract 对图像中的感兴趣区域 (ROI) 进行 OCR

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在这篇文章中,我们将使用 OpenCV 在图像的选定区域上应用 O ...

  7. OpenCV实现0到9数字识别OCR

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 使用OpenCV对0到9数字进行识别,实现简单OCR功能,基于CA ...

  8. 使用OpenCV搭建违章停车检测系统

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 各位小伙伴大家好,今天将会带领大家一起学习如何搭建一个违章停车检测 ...

  9. 基于OpenCV的表格文本内容提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 小伙伴们可能会觉得从图像中提取文本是一件很麻烦的事情,尤其是需要提 ...

最新文章

  1. ifix的MySQL数据库_iFIX 技术文章:iFIX历史数据库
  2. bfd联动 cisco_以太链路的接口备份和BFD联动
  3. C++设计模式-中介者模式
  4. mybatis的动态sql学习注意点!!!
  5. 贴吧备份到本地浏览html,获取贴吧对应页html及写入文件
  6. 【Linux】Linux中变量#,@,0,1,2,*,$$,$?的解释
  7. L3-020 至多删三个字符 (30 分)-PAT 团体程序设计天梯赛 GPLT
  8. IOS学习笔记6—Objective C—Foundation框架
  9. iOS swift语言生成条形码,可一次性生成多个!并带文字
  10. 数学竖式排版中不为人知的技巧
  11. javaScript、jQuery、html实现九宫格拼图游戏(逻辑及源码)
  12. Android第四次作业
  13. java applet类开始博饼_博饼小游戏java源代码.doc
  14. linux进入桌面后CPU狂转,笔记本风扇狂转+CPU调节问题
  15. 这6款APP和游戏,是苹果选出的2019年年度最佳
  16. 安徽师大附中%你赛day9 T3 贵 解题报告
  17. kvm 监控内存,替换页表(linux版的win VT晶核)(这个整复杂了,不用小内核也可以实现,留着吧,主要记录了bootLoad的启动过程)
  18. 如何提高文案策划能力?
  19. Django之restframework的路由Routers
  20. ALWAYS ON 搭建

热门文章

  1. 【HiFlow】解决通知群经常发通知的麻烦
  2. Python实现字典树
  3. 2018linux发展空间,基于Linux在2018年的8个发展预测
  4. macOS xampp虚拟域名设置
  5. mysql 慢查询日志参数设置
  6. 纺织行业O2O的技术方案
  7. android 获取sessionid
  8. 应用sobel算子算法c语言,Sobel算子详解
  9. 《opencv学习笔记》-- 边缘检测和canny算子、sobel算子、LapIacian 算子、scharr滤波器
  10. 构建开发环境 构建demo_科技构建了我们的现实