PNGファイルからOpenCVアプリケーションに24ビットRGBイメージをロードしています。OpenCVイメージ変換によるRGBからグレースケールへの変換が悪い結果をもたらす
しかし、imread
を使用して直接画像をグレースケールとして読み込むと、結果が非常に悪くなります。
Mat src1 = imread(inputImageFilename1.c_str(), 0);
RGBとしてRGB画像をロードし、グレースケールに変換するには、はるかに良い探し結果を与えます。
Mat src1 = imread(inputImageFilename1.c_str(), 1);
cvtColor(src1, src1Gray, CV_RGB2GRAY);
画像タイプにimread
を正しく使用しているのでしょうか。誰も同じような行動を経験していますか?
画像がここに表示されimread
を使用してグレースケールに変換:
OpenCVの "Color"イメージはBGRを意味します。したがって、コードの2番目のバージョンが正しくありません。色変換には 'CV_BGR2GRAY'を使うべきです。 –
コメントありがとうございます。 CV_RGB2GRAYの代わりにCV_BGR2GRAYを使って画像をグレースケールに変換しようとしましたが、同じ結果が得られました。 – tisch
オリジナルの画像も添付できますか? –