簡體   English   中英

如何將位圖轉換為圖像<Bgr, Byte>

[英]How to convert Bitmap to Image<Bgr, Byte>

我正在使用 OpenCV 庫進行圖像處理。

我想將System.Drawing.Bitmap轉換為Image<Bgr, Byte> 我怎樣才能做到這一點?

Image構造函數有一個Bitmap重載(假設您使用 Emgu CV 包裝器,因為您已將其標記為.NET )。

Image<Bgr, Byte> myImage = new Image<Bgr, Byte>(myBitmap); 

在 .NET Emgu.CV 4.4.0.4099我必須安裝Emgu.CV.Bitmap 4.4.0.4099Emgu.CV.runtime.windows才能使用bitmap.ToImage<Bgr, byte>()擴展方法。

Image<Bgr, byte>的構造函數不再接受Bitmap作為參數。 對於 Emgu 4.3 版,我必須使用以下代碼:

Image<Bgr, byte> emguImage = bitmap.ToImage<Bgr, byte>();

我在 github 和補丁說明中找到了它。 官方文檔教程沒有正確更新。

我在 NetStandard 2.1 上使用 Emgu.CV 4.5.1.4349 需要安裝 Emgu.CV.Bitmap 和 Emgu.CV.runtime.windows 以便將您的 Bitmap 轉換為 Image<Bgr, byte>

var myImage = myBitmap.ToImage<Bgr, byte>()

需要關注的對象:您應該將依賴項 dll 添加到項目中,並將 Emgu\\emgucv-windows-universal-cuda 2.9.0.1922\\bin\\ 中的“復制到輸出目錄”屬性更改為“始終復制”(添加 -> 現有項目) x86

在我的項目中添加: opencv_core290.dll 、 opencv_highgui290.dll 、 opencv_ffmpeg290.dll 、 opencv_imageproc290.dll 和 cudart32_55.dll

來自: “Emgu.CV.CvInvoke”的類型初始值設定項引發異常

我正在使用 Emgu 4.3.0.3890,但在將代碼與我的團隊集成時遇到了同樣的問題。 給我帶來麻煩的那一行是:

Image<Bgr, byte> img = bitmap.ToImage<Bgr, byte>();

我沒有看到構建創建了兩個名為 x86 和 x64 的新目錄。 當我發現它時,我將這兩個目錄添加到我的二進制文件的位置,並且一切正常。 我沒有時間消除以查看這些目錄中的哪個文件對此負責,但是,嘿,它起作用了。 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM