7

cvCvtColor以下は、 OpenCVの関数を使用してグレースケール画像をRGBに変換する簡単なコードのスニペットです。

input = cvLoadImage("test.jpg", CV_LOAD_IMAGE_GRAYSCALE);
output = cvCreateImage(cvSize(input->width, input->height), 8, 3);
cvCvtColor(input, output, CV_GRAY2BGR);
cvSaveImage("output.jpg", output);

ここで、test.jpgはグレースケール画像です。

ただし、output.jpg、つまり最終出力も入力自体と同じグレースケールであるため、正しく機能していないようです。なぜそうなのか ?

どんな種類の助けも大歓迎です。前もって感謝します !

4

1 に答える 1

24

あなたはcvCvtColorを誤解していると思います。cvCvtColor(input, output, CV_GRAY2BGR);シングルチャンネル画像を3チャンネル画像に変更します。ただし、画像を見ると、たとえば154のグレーピクセルがRGB(154,154,154)に変換されているため、灰色の画像のように見えます。

カラー画像をグレー画像に変換すると、すべての色情報が失われ、復元できなくなります。したがって、追加情報と対応する操作がなければ、実際にグレー画像を作成して画像を視覚的にカラー化することはできません。

于 2012-10-06T17:27:59.900 に答える