我以前也这样做过,它工作得很好,但我有奇怪的功能。我正在尝试提取图像的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?
谢谢
发布于 2012-10-19 00:39:07
你的输入框是彩色的吗?
只有当current_frame是CV_8UC1或CV_8SC1类型的矩阵时,您的代码才有效。
使用current_frame.at<Vec3b>(i, j)访问RGB像素。还要注意,有时灰度图像被读取为3通道矩阵。
https://stackoverflow.com/questions/12958878
复制相似问题