1

OpenCVまたはMATLABに、24ビットのRGB画像を16ビットのグレー画像に変換する関数がありますか。CvConvertColorを試しましたが、ここでは役に立ちません。

(cvtColor(src、bwsrc、CV_RGB2GRAY)を使用してグレースケールに変換できます。さらにヘルプが必要ですが、32ビットから16ビットにしたいです。)

4

2 に答える 2

1

matlabにはrgb2gray演算子があると思います。

mathworksサイトから読むことができる場所へのリンクは次のとおりです。

http://www.mathworks.com/help/toolbox/images/ref/rgb2gray.html

これは、画像の読み方も教えてくれます。必要なコードのほとんどはそこにあります!!!

I = imread('board.tif');
J = rgb2gray(I);
figure, imshow(I), figure, imshow(J);
于 2012-06-08T18:49:40.763 に答える
0

OpenCVのcvtcolorを試しましたか?使用しているopencvのバージョンはわかりませんが、CvConvertColorはもう存在しないため、おそらく最新バージョンを設定する必要があります。

cvtcolor:

http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor

cvtColor自体にはそれ以上の引数はなく、ソースとデスティニーマトリックスのビット数をチェックするのに十分賢いです。OpencvマトリックスオブジェクトであるMatオブジェクトには、ビット数、カラーチャネルの数、およびプリミティブ型を保持するカスタムopencv型があります(詳細:http ://docs.opencv.org/modules/core/doc/basic_structures.html#datatype )。

結果の行列が16ビットかどうかを確認したい場合は、マットタイプを確認できます。マトリックスが必要なビット数にない場合、opencvにはそのための他のコンバーターがあります:http ://docs.opencv.org/modules/core/doc/basic_structures.html?highlight = convert#mat-convertto

于 2012-06-08T09:23:29.937 に答える