我正在爲涉及C#,Kinect和Emgu CV的學校開發一個項目。我對C#和Emgu CV都很新,所以我可能會錯過簡單的東西。我想要做的是使用Kinect中的圖像作爲Emgu CV圖像進行處理,但是我一直收到錯誤。出現的錯誤是「TypeInitializationException未處理」和「Emgu.Cv.CVInvoke的類型初始值設定項引發異常。」與Emgu CV一起使用Kinect ColorImageFrame CV
我使用從Kinect的獲取圖像的代碼是:
using (ColorImageFrame colorFrame = e.OpenColorImageFrame())
{
if (colorFrame != null)
{
byte[] pixels = new byte[colorFrame.PixelDataLength];
colorFrame.CopyPixelDataTo(pixels);
int stride = colorFrame.Width * 4;
BitmapSource color = BitmapImage.Create(colorFrame.Width, colorFrame.Height,96, 96, PixelFormats.Bgr32, null, pixels, stride);
liveFeed.Source = color;
EmguCVProcessing(color);
}
else
{
return;
}
}
我還發現,我使用到的BitmapSource從轉換爲位圖一些代碼:Is there a good way to convert between BitmapSource and Bitmap?
的不工作的代碼如下:
void EmguCVProcessing(BitmapSource bitmap)
{
Bitmap bmp = GetBitmap(bitmap);
Image<Bgr, Byte> imgLiveFeed = new Image<Bgr, Byte>(bmp);
}
從我能找到,這應該位圖轉換成Emgu CV形象,但由於某種原因,事實並非如此。
只是一些詳細信息:
的InnerException:確保文件的圖像是一個有效的管理組件。
InnerException:確保您爲程序集提供了正確的文件路徑。
我最好的猜測是該程序使用不同版本的.NET Framework,但我不確定如何解決這個問題。