11

私は EmguCV が初めてです。RGB画像をグレースケールに変換したい。変換のために、私はコードを使用しました

Image<Gray,byte> grayImage = ColordImage.Convert<Gray, byte>();

このコードを C# でコンパイルするとエラーは発生しませんが、実行すると数秒後に、このコード行で、このタイプの変換が OpenCV でサポートされていないという例外が表示されます。誰でもこの問題を解決できますか。

よろしくアマル

4

4 に答える 4

15

ColordImage の色の種類によって異なる場合があります。

たとえば、これは機能します:

Capture cap = new Capture(1);
Image <Bgr,Byte> ColordImage = cap.QueryFrame();
Image <Gray,Byte> grayImage = ColordImage.Convert<Gray, Byte>();
imageBox1.Image = grayImage;

より多くのコードを提供できれば、何が起こっているのかがより明確になるかもしれません。

于 2010-06-28T12:26:17.007 に答える
5

あるいは、使用したくない場合Convert(たとえば、ColoredImageIntPtr などの他のデータ型の場合)、次のような多数のコンストラクターを利用できます。

Image<Gray, byte> grayFrame = new Image<Gray, byte>(width, height, stride, imageData);

完全なリストは次のとおりです

emgu Wiki には、さらにいくつかの例 (Convert の使用法を含む) もあります: http://www.emgu.com/wiki/index.php/Working_with_Images

于 2010-12-12T17:02:12.697 に答える
5

opencv_imgproc220.dll (emgu cv 2.2.1.1150 を使用している場合) をプロジェクトの bin/debug フォルダーに貼り付ける必要があります。

于 2012-08-03T22:23:25.400 に答える
4

簡単な方法の 1 つは、コンストラクターでカラー イメージの BitMap を渡すことです。

Image<Bgr, byte> inputImage = //your original bgr image
Image<Gray, Byte> result = new Image<Gray,byte>(inputImage.Bitmap);
于 2014-09-02T18:32:52.530 に答える