簡體   English   中英

在OpenCV和C#上獲取RGB顏色值

[英]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.

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