3

これが私のコードです。とても簡単です。

Mat image  = imread("filename.png");

imshow("image", image);
waitKey();

//Image looks great.

Mat image_gray;
image.convertTo(image_gray, CV_RGB2GRAY);

imshow("image", image_gray);
waitKey();

しかし、image.convertTo(image_gray, CV_RGB2GRAY);回線を呼び出すと、次のエラーメッセージが表示されます。

OpenCV Error: Assertion failed (func != 0) in unknown function, file ..\..\..\sr
c\opencv\modules\core\src\convert.cpp, line 1020

OpenCV2.4.3の使用

4

4 に答える 4

7

このメソッドconvertToは色変換を行いません。

BGR から GRAY に変換する場合は、関数cvtColorを使用できます。

Mat image_gray;
cvtColor(image, image_gray, CV_BGR2GRAY);
于 2013-01-20T17:51:08.857 に答える
0

グレースケールで (Web カメラなどから) ビデオを取得する必要がある場合は、ビデオ フィードの彩度をゼロに設定することもできます。(例: Python 構文)

 capture = cv.CaptureFromCAM(camera_index) 

... cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_SATURATION,0)

于 2013-02-06T02:18:42.223 に答える
0

cv::Mat::convertTo色変換機能ではありません。型変換用です。宛先イメージは、ソース イメージと同じサイズとチャネル数を持つ必要があります。

RGB からグレーに変換するには、関数 を使用しますcv::cvtColor

cv::cvtColor(image,image_gray,CV_RGB2GRAY);
于 2013-01-20T17:51:11.900 に答える