[英]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.4099
和Emgu.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 4.3.0.3890,但在將代碼與我的團隊集成時遇到了同樣的問題。 給我帶來麻煩的那一行是:
Image<Bgr, byte> img = bitmap.ToImage<Bgr, byte>();
我沒有看到構建創建了兩個名為 x86 和 x64 的新目錄。 當我發現它時,我將這兩個目錄添加到我的二進制文件的位置,並且一切正常。 我沒有時間消除以查看這些目錄中的哪個文件對此負責,但是,嘿,它起作用了。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.