首页 > 代码库 > 关于opencv中cv::Mat设置roi
关于opencv中cv::Mat设置roi
opencv中设置roi实验:
1 cv::Mat SrcImg; 2 SrcImg = cv::imread("../resource/cpw3.png"); 3 cv::imshow("原图像",SrcImg); 4 5 // 第一次提取部分ROI 6 cv::Rect SrcImgROI = cv::Rect( SrcImg.cols/2, 0, SrcImg.cols/2, SrcImg.rows/2); 7 cv::Mat SrcROIImg = SrcImg(SrcImgROI); 8 cv::imshow("ROI",SrcROIImg); 9 10 // 第一次改变ROI中的值,原图像也改变,表示公用一个内存11 SrcROIImg.setTo(cv::Scalar(0,0,255));12 cv::imshow("原图像-2",SrcImg);13 14 cv::Size wholeSize;15 cv::Point ofs;16 // 第一次获取ROI相对于原图像的偏移以及尺寸,wholeSize为原图像尺寸,ofs为该roi在原图像的偏移17 SrcROIImg.locateROI(wholeSize,ofs);18 printf("ROI mat: wholeSize:(%d,%d),ofs:(%d,%d)\n",wholeSize.width,wholeSize.height,ofs.x,ofs.y);19 20 // 调整ROI大小尺寸21 SrcROIImg.adjustROI(0, -SrcImg.rows/5, -SrcImg.cols/5, 0);22 cv::imshow("ROI-2",SrcROIImg);23 24 // 第二次改变调整后ROI中的值,原图像也改变,表示公用一个内存25 SrcROIImg.setTo(cv::Scalar(255,0,0));26 cv::imshow("原图像-3",SrcImg);27 28 // 第二次获取调整后的ROI相对于原图像的偏移以及尺寸29 SrcROIImg.locateROI(wholeSize,ofs);30 printf("After Adjust ROI mat: wholeSize:(%d,%d),ofs:(%d,%d)\n",wholeSize.width,wholeSize.height,ofs.x,ofs.y);31 32 // 第三次 获取原图像ROI部分ROI33 SrcImg = SrcImg(SrcImgROI);34 cv::imshow("ROI-3",SrcImg);
1.原图像为:
2. 第一次提取的ROI图像为:
3.第一次改变ROI中的值,原图像也改变,表示公用一个内存
4.第一次获取ROI相对于原图像的偏移以及尺寸:
5.调整ROI大小尺寸后图像:
6.第二次改变调整后ROI中的值,原图像也改变,表示公用一个内存:
7.第二次获取调整后的ROI相对于原图像的偏移以及尺寸:
8.第三次 获取原图像ROI部分ROI
关于opencv中cv::Mat设置roi
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。