2016-04-05 179 views
3

有沒有方法將EmguCV IImage轉換爲EmguCV結構?將IImage轉換爲結構

Image<Bgr, Byte> Frame;   // current frame from camera 
Image<Bgr, Byte> Previous_Frame; // previous frame aquired 
Image<Bgr, Byte> Difference;  // difference between the two frames 

double ContourThresh = 0.003; //stores alpha for thread access 
int Threshold = 60; //stores threshold for thread access 

private void ProcessFrame(object sender, EventArgs arg) 
{ 
    if (Frame == null) 
    { 
     Frame = imageBox1.Image; //error 
     Previous_Frame = imageBox2.Image; //error 
    } 
    else 
    { 
     Frame = imageBox1.Image;//error 
     Previous_Frame = imageBox2.Image;//error 

     Difference = Previous_Frame.AbsDiff(Frame); 
     Difference = Difference.ThresholdBinary(new Bgr(Threshold, Threshold, Threshold), new Bgr(255, 255, 255)); //if value > 60 set to 255, 0 otherwise 

     Previous_Frame = imageBox2.Image; 
    } 
} 

我越來越:

錯誤14無法隱式轉換類型Emgu.CV.IImageEmgu.CV.Image<Emgu.CV.Structure.Bgr,byte>。一個顯式轉換存在(是否缺少強制轉換?)d:\ ECE設計項目\ aslt軟件\ aslt軟件\ seatplan.cs 917 25 ASLT軟件

我試圖得到兩個圖像框之間的差異, imageBox1imageBox2

  • imageBox1是由攝像機拍攝的圖像的處理圖像,而* imageBox2是imageBox1的圖像被保存到MS Access數據庫..

我試圖做的是在數據庫中找到與imagebox1匹配的圖像..是我在這裏做的正確的,或者你們比使用absdiff有更好的選擇?

+0

我通過快照先生加入編譯器錯誤,對不起,如果我做錯了...... –

+0

做過先生,感謝,併爲錯誤道歉。 :) –

+0

感謝您的編輯。, 希望有人可以幫助 –

回答

0

衝浪後的一些文章我發現自己的答案是我自己的問題。

這是我做過什麼..

  Frame = new Image<Bgr, Byte>(imageBox1.Image.Bitmap); 
      Previous_Frame = new Image<Bgr, Byte>(imageBox2.Image.Bitmap);