2017-10-18 4 views
0

私は画像のロードと修正についてthis OpenCV tutorialをフォローしようとしました。私はこのようなイメージをロードします。OpenCV3 image.depth()はゼロです

I = imread(filename, IMREAD_COLOR); 

後のコードでCV_Assertがある:

CV_Assert(I.depth() != sizeof(uchar)); 

I.depth()がゼロでsizeof(uchar)が1であるので、それは真実ではありません。

どうしますか?私がimshowと呼んだ場合、画像は正しく表示されます

+0

を使用することができます。これは、[最後のドキュメント]に正しい(https://docs.opencv.org/master/ db/da5/tutorial_how_to_scan_images.html)を 'CV_Assert(I.depth()== CV_8U);'に置き換えます。 OpenCVバージョン3.0-betaについては忘れてしまいました。バグがあり、悪いことが書かれています;) – Miki

答えて

1

I.depth()は要素のサイズを返しません。それはdepth definesの1を返します。

#define CV_8U 0 
#define CV_8S 1 
#define CV_16U 2 
#define CV_16S 3 
#define CV_32S 4 
#define CV_32F 5 
#define CV_64F 6 

あなたは要素のサイズを取得したい場合は、あなたがI.elemSize1()

関連する問題