私の質問はこれと非常によく似ています...5ポイントのポリゴンであるグレースケール画像からサブマトリックスを抽出し、それをマットに変換しようとしています。
これは動作しません:
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)に変換すると思いました。
私の考えは正しいですか、それともこの部分行列を取得する簡単な方法はありますか?