OpenCV中感兴趣区域的选取与检测(一) 您所在的位置:网站首页 脸的划分区域 OpenCV中感兴趣区域的选取与检测(一)

OpenCV中感兴趣区域的选取与检测(一)

2024-07-09 22:03| 来源: 网络整理| 查看: 265

1、感兴趣区域的选取

感兴趣区域(Region of Interest, ROI)的选取,一般有两种情形:1)已知ROI在图像中的位置;2)ROI在图像中的位置未知。

1)第一种情形 很简单,根据ROI的坐标直接从原图抠出,不过前提是要知道其坐标,直接上例子吧。

int getROI(Mat image, Rect rect) { Mat img=image.clone(); Mat roi; int cols=img.cols, rows=img.rows; //ROI越界,返回 if(cols-1-rect.x 0) { //将img中的矩形区域复制给roi,并显示在SignROI窗口 roi = img(Rect(rect.x, rect.y, rect.width, rect.height)); rectangle(img, rect, Scalar(0, 0, 255),2); namedWindow("SignROI"); imshow("SignROI", img); //将画过矩形框的图像用原图像还原 src.copyTo(img); imshow("SrcImage", img); //显示ROI图像 namedWindow("ROI"); imshow("ROI", roi); waitKey(0); } draw = false; break; //移动光标 case CV_EVENT_MOUSEMOVE: if (draw) { //用MIN得到左上点作为矩形框的起始坐标,如果不加这个,画矩形时只能向一个方向进行 rect.x = MIN(x, cursor.x); rect.y = MIN(y, cursor.y); rect.width = abs(cursor.x - x); rect.height = abs(cursor.y - y); //防止矩形区域超出图像的范围 rect &= Rect(0, 0, src.cols, src.rows); } break; } } int main() { src=imread("test.jpg"); if(src.data==0) { cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有