我可以使用Data[,,]
來訪問灰色圖像的每個像素,但不能爲Bgr圖像這樣做。 我已經寫以下代碼:無法訪問圖像<Bgr, byte>。C#中的數據屬性emgucv
Image<Bgr, byte> currentFrame = capture.QueryFrame();
Image<Gray, byte> grayFrame = currentFrame.Convert<Gray, byte>();
Byte gray = grayFrame.Data[0, 10, 0];
Byte blue = currentFrame.Data[0, 10, 0];
其拋出異常:Object reference not set to an instance of an object.
我檢查通過添加斷點,結果是這樣的:
currentFrame.Data is nul
grayFrame.Data has 3d array
gray has value 71
,然後將下一行引起的錯誤
爲什麼currentFrame.Data應該是一個3d數組,爲空?我如何訪問Bgr圖像的Image.Data屬性?
我正在使用emgucv 2.2.1。 2.1版本出現同樣的問題。
感謝所有幫助
我發現是相當令人吃驚。
Image<Bgr, byte> currentFrame = capture.QueryFrame();
byte b;
try
{
b = image.Data[0, 0, 0]; //Line (A)
}
catch (Exception ex)
{ MessageBox.Show("Before Convert : "+ex.Message); }
image = image.Convert<Bgr, byte>();
try
{
b = image.Data[0, 0, 0]; //Line (B)
}
catch (Exception ex)
{ MessageBox.Show("AfterConvert : "+ex.Message); }
在上面的代碼中:行(A)拋出異常「對象拒絕未設置爲對象的實例」。但添加代碼後
image = image.Convert<Bgr, byte>();
線(B)順利運行,沒有任何例外。
有誰知道這是爲什麼發育?
這是什麼語言?那是C#嗎?添加適當的標籤,以便您可以從理解您的代碼的人那裏獲得幫助。 – karlphillip