我的问题与这个问题非常相似......我正在尝试从灰度图像中提取一个子矩阵,该图像是一个由 5 个点组成的多边形,并将其转换为一个 Mat。
这不起作用:
std::vector<Point> vert(5);
vert.push_back(pt1);
vert.push_back(pt2);
vert.push_back(pt3);
vert.push_back(pt4);
vert.push_back(pt5);
Mat matROI = Mat(vert);
它向我显示以下错误消息:
OpenCV Error: Bad number of channels (Source image must have 1, 3 or 4 channels) in cvConvertImage, file /home/user/opencv-2.4.6.1/modules/highgui/src/utils.cpp, line 611
terminate called after throwing an instance of 'cv::Exception'
what(): /home/user/opencv-2.4.6.1/modules/highgui/src/utils.cpp:611: error: (-15) Source image must have 1, 3 or 4 channels in function cvConvertImage
我正在使用 OpenCV 2.4.6.1 和 C++。
谢谢
编辑:
我想我会把图像看作一个多边形,因为我有顶点的坐标,然后转换具有矩阵(cvMat)中的顶点的向量。
我的想法是正确的还是有更简单的方法来获得这个子矩阵?