gpt4 book ai didi

c++ - OpenCV 中的图像数组

转载 作者:行者123 更新时间:2023-11-28 06:46:48 26 4
gpt4 key购买 nike

我正在使用 OpenCV 进行基于模板匹配的项目。

如何制作图像数组?

cv::Mat ref_temp[7]; // Array Declaration as we do in c/c++
cv::Mat image = cv::imread("ref.jpg",1);
cv::Mat ref_image;

image.copyTo( ref_image);

cv::Mat ref_temp(1) =(ref_image, cv::Rect(550,85, 433, 455));
cv::Mat ref_temp[2] =(ref_image, cv::Rect(1042,85,433, 455));
cv::Mat ref_temp[3] =(ref_image, cv::Rect(1528,85,433, 455));
cv::Mat ref_temp[4] =(ref_image, cv::Rect(65, 1010, 423, 442));
cv::Mat ref_temp[5] =(ref_image, cv::Rect(548, 1010, 423, 442));
cv::Mat ref_temp[6] =(ref_image, cv::Rect(1025, 1010, 423, 442));
cv::Mat ref_temp[7] =(ref_image, cv::Rect(1529, 1010, 423, 442));

我不确定我这样做的方式是否正确。请帮助我。

最佳答案

首先,从 ref_image 创建一个感兴趣区域 (ROI),其中 ROI 的左上角为 (550, 85),宽度和高度为 443 和 455:

cv::Mat ref_img_roi(ref_image, cv::Rect(550, 85, 433, 455);

接下来,将 ROI 分配给图像数组:

ref_temp[0] = ref_img_roi;

现在,ref_temp[0] 引用了 ref_imageref_img_roi 中指定的区域。

在您的代码中,C++ 数组的用法不正确。使用 ref_temp 时,您不必放置 cv::Mat。并且,数组的索引应该是 0 ~ 6。以下代码将起作用:

cv::Mat ref_temp[7];
cv::Mat image = cv::imread("ref.jpg",1);
cv::Mat ref_image;
image.copyTo( ref_image);

ref_temp[0] = cv::Mat(ref_image, cv::Rect(550, 85, 433, 455));
ref_temp[1] = cv::Mat(ref_image, cv::Rect(1042, 85, 433, 455));
ref_temp[2] = cv::Mat(ref_image, cv::Rect(1528, 85, 433, 455));
ref_temp[3] = cv::Mat(ref_image, cv::Rect(65, 1010, 423, 442));
ref_temp[4] = cv::Mat(ref_image, cv::Rect(548, 1010, 423, 442));
ref_temp[5] = cv::Mat(ref_image, cv::Rect(1025, 1010, 423, 442));
ref_temp[6] = cv::Mat(ref_image, cv::Rect(1529, 1010, 423, 442));

关于c++ - OpenCV 中的图像数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24846161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com