[英]Get RGB color values on OpenCV and C#
我找不到一個簡單問題的解決方案:
在此代碼中:
private void ibOriginal_MouseClick(object sender, MouseEventArgs e)
{
int mouse_get_X = (int)(e.Location.X);
int mouse_get_Y = (int)(e.Location.Y);
Byte byte_color = imgOriginal.Data[mouse_get_X, mouse_get_Y, 0];
}
我想通過鼠標單擊獲得具有X,Y坐標的像素的RGB值(在int的3維數組中)。
我可以轉換“ byte_color”嗎? 這是正確的嗎?
我在C#中找不到任何可以幫助我的東西,我正在使用EmguCV。
首先,您可能想要擁有:
imgOriginal.Data[mouse_get_Y, mouse_get_X, 0]; //note X and Y swapped
其次,在OpenCV中,數據存儲在您選擇的帶上一個索引的區域中。 它們的解釋取決於您的圖像類型。 例如,如果您具有BGR圖像類型,則:
imgOriginal.Data[mouse_get_Y, mouse_get_X, 0]; // blue
imgOriginal.Data[mouse_get_Y, mouse_get_X, 1]; // green
imgOriginal.Data[mouse_get_Y, mouse_get_X, 2]; // red
類似於此命名空間中定義的其他圖像類型: http : //www.emgu.com/wiki/files/1.3.0.0/html/b72c032d-59ae-c36f-5e00-12f8d621dfb8.htm
當帶具有byte
分辨率時,它們的值范圍為0 ... 255,因此基本上您已經有一個整數,可以輕松地將其放入文本框:
textBox.Text = byteValue.ToString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.