在图像处理领域,常常需要设置感兴趣区域来专注或者简化工作过程,也就是从图像中选择一个图像区域,这个区域是图像分析所关注的重点。
定义ROI区域有两种方法:
Mat imageROI; //方法一 //前两个参数是相对于原图像的坐标,后两个参数是ROI区域的宽和高 imageROI = image(Rect(pos_left,pos_top,logo.cols,logo.rows)); //方法二 //指定行和列的范围来定义ROI imageROI = image(Range(250,250+logo.rows),Range(200,200+logo.cols));
示例:
用于叠加的2张图片如下:
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main() { Mat src_image = imread("美女.jpg"); Mat logo_image = imread("logo.png"); if (!src_image.data || !logo_image.data) { cout << "读取图片失败" << endl; return 1; } int xpos = src_image.cols / 2 - logo_image.cols / 2; int ypos = src_image.rows / 2 - logo_image.rows / 2; Mat roi_image = src_image(Rect(xpos, ypos, logo_image.cols, logo_image.rows)); Mat mask = imread("logo.png", 0); logo_image.copyTo(roi_image, mask); imshow("图片叠加示例", src_image); waitKey(0); return 0; }
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:


