0

我过去做过这个并且效果很好,但是我的功能很奇怪。我正在尝试提取图像的 roi。这是我的代码:

cv::Rect roi(x - 1, y - 1, 3, 3);
cv::Mat patch_t(current_frame, roi);

cout << (int)current_frame.at<unsigned char>(y - 1, x - 1) << endl;
cout << (int)patch_t.at<unsigned char>(0, 0) << endl;

这两个 cout 调用应该返回相同的值,但事实并非如此。一个返回 150,而另一个返回 37。这显然是行不通的。在不复制图像的情况下,我还能如何提取图像的 ROI?

谢谢

4

1 回答 1

1

你的输入框是彩色的吗?

您的代码仅在current_frameCV_8UC1 或 CV_8SC1 类型矩阵时才有效。

用于current_frame.at<Vec3b>(i, j)访问 RGB 像素。另请注意,有时灰度图像被读取为 3 通道矩阵。

于 2012-10-18T16:39:06.747 回答