簡體   English   中英

Emgu CV ColorConversion.RGB2GRAY/BGR2GRAY

[英]Emgu CV ColorConversion.RGB2GRAY/BGR2GRAY

我目前正在撰寫有關圖像處理的論文,這是我第一次進入圖像處理領域,我願意隨着該項目的進展了解更多信息。 我對代碼很困惑:

CvInvoke.CvtColor(imgRgb, imgGray, Emgu.CV.CvEnum.ColorConversion.Rgb2Gray)

我嘗試使用此代碼,但它僅返回為圖片框中的黑框。 我在 CvtColor 之后立即使用了這一行:

pictureBox1.Image = imgGray.ToBitmap();

我閱讀了關於 RGB2GRAY 的文檔,它聲明為 LUMA 灰度轉換,我的論文中確實需要這種類型的算法。 我想使用Image<Gray, byte> gray_image = resizedImage.Convert<Gray, byte>() ,但我不知道正在使用什么類型的灰度算法。

尼爾,雖然我不知道 EmguCV 和 OpenCV 區域的源代碼可以在各自的網站上免費獲得。 我會拉出每個副本並查看。 我剛剛進入 3.2 的 OpenCV 文檔,發現了這個:

**RGB ↔ 灰色

RGB 空間內的轉換,如添加/刪除 alpha 通道、反轉通道順序、轉換為/從 16 位 RGB 顏色(R5:G6:B5 或 R5:G5:B5),以及使用以下方法轉換為/從灰度:

RGB[A] 到灰色:Y←0.299⋅R+0.587⋅G+0.114⋅B 和

Gray to RGB[A]:R←Y,G←Y,B←Y,A←max(ChannelRange) 從 RGB 圖像到灰度的轉換是通過以下方式完成的:

cvtColor(src, bwsrc, cv::COLOR_RGB2GRAY);** 在此處查找文檔

道格

您需要將 imgGray 聲明為 Gray 而不是 Bgr

Image<Gray, byte> imgGray而不是Image<Bgr, byte> imgGray

至少我假設這是你的錯誤,因為我得到了和你一樣的黑色照片! 但是通過這個修復它起作用了。

暫無
暫無

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

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