【发布时间】:2014-06-10 19:57:49
【问题描述】:
非常简短的故事是,我想将 CV_32FC1 OpenCV 图像复制到格式化为 [PixelFormats.Gray32Float][2] 的 Windows [WriteableBitmap][1]
以下代码适用于所有 8 位图像格式(CV_8UF1、CV_8UF3 等)
writeableBitmap = new WriteableBitmap(imgWrapper.Width,
imgWrapper.Height, 96, 96,
imgWrapper.PixelFormat, null);
var frameSize = new Int32Rect(0, 0, imgWrapper.Width, imgWrapper.Height);
writeableBitmap.WritePixels(frameSize, imgWrapper.Data, imgWrapper.Stride, 0);
imgWrapper.Data 是一个数组 byte[],所以我“盲目地”将数据复制到 WriteableBitmap。显然 WriteableBitmap 和 OpenCV 图像对于 8 位图像具有相同的布局,但对于灰色 32 位图像可能不是。
1) OpenCV如何格式化32FC1 Mat数据? 2) Visual Studio 中有没有办法将 Mat.data 视为 32 位浮点数。在调试器中,它始终显示为字节。 3)我读过关于将 32F 图像缩放到 0-1 的信息。这是通用的吗? Windows WriteableBitmap 对数据的解释是否相同?
感谢任何帮助或提示
【问题讨论】:
标签: c# wpf opencv image-processing bitmap