この Python の例に従って、OpenCV 3.1.0 と C++ を使用してオブジェクト トラッカーを作成しようとしています: http://docs.opencv.org/3.1.0/df/d9d/tutorial_py_colorspaces.html#gsc.tab=0。
cvtColor() 関数には、色空間ではなく画像の色が変更されるため、いくつかの問題があります。私はこのコードを持っています:
Mat original_image;
original_image = imread(argv[1], CV_LOAD_IMAGE_COLOR); // The image is passed as arg
if (!original_image.data)
{
printf("Problem!\n");
return -1;
}
// From BGR to HSV
Mat hsv_image(original_image.rows, original_image.cols, original_image.type());
cvtColor(original_image, hsv_image, CV_BGR2HSV);
imwrite("hsv_image.png", hsv_image);
original_image は CV_8UC3 で、cvtColor() と互換性があり、元は BGR 色空間にある必要があります。
GIMPで以下のテスト画像を作成しました:
そして、私は結果としてこの画像を取得します:
BGR2HSVをBGR2RGBに変更して、BGRからRGBへの変換を試みることにしました。同じテスト画像で、この結果が得られました
ここでは、画像のチャンネルが直接変更されていることがより明確です...
ここで何が起こっているかについて誰か知っていますか?