要从图像中分离出特定部分,我们必须首先找到该区域。然后我们
必须将该区域从主图像复制到另一个矩阵。这就是ROI的工作原理
OpenCV工作。
在这个例子中,开始时声明了两个矩阵。之后,一个名为'image_name.jpg'的图像被加载到'image1'矩阵中。下一行'image2=image1 (Rect(100, 100, 120, 120));'需要特别注意。这行代码是将图像的定义区域裁剪出来,并存储在'image2'矩阵中。
图示了我们使用'Rect(100,100,120,120)'代码所做的操作
这行代码的基本形式是'Rect(x, y,x1,y1)'。这里的x和y表示矩形的起始点,x1和y1表示矩形的终点。通过改变这些值,我们可以改变矩形的大小。
示例
以下程序演示了OpenCV中感兴趣区域的工作原理:
#include
#include
#include
using namespace std;
using namespace cv;
int main() {
Mat image1; //Declaring a matrix named 'image1'//
Mat image2; //Declaring a matrix named 'image2'//
image1 = imread("RGB.png"); //Loading an image name 'image_name.png into image1 matrix//
image2 = image1(Rect(100, 100, 120, 120)); //imposing a rectangle on
image1//
namedWindow("Image_Window1"); //Declaring an window to show actual image//
namedWindow("Image_Window2"); //Declaring an window to show ROI//
imshow("Image_Window1", image1); //Showing actual image//
imshow("Image_Window2", image2);
waitKey(0);
return 0;
}
登录后复制
输出
以上就是如何使用C++在OpenCV中使用感兴趣区域(ROI)?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!