wl2*_*776 5 c++ image-processing debuggervisualizer visual-studio bgr
有一个不错的 Visual Studio 扩展Image Watch。
它可以获取 RAM 中的任意地址,并通过@mem操作符将其内容显示为图像。
@mem(address, type, channels, width, height, stride):将原始内存解释为像素,从address(UINT64)开始,带有通道type(请参阅像素格式)、channels(UINT32)、width(UINT32)、height(UINT32) 和stride(UINT32) 的数量。例子:@mem(myimg.data, UINT8, 1, 320, 240, 320)
根据帮助页面,它可以显示几种复杂的像素格式,其中包括BGR、NV12和YV12。
可选地,格式字符串可以与像素格式相关联。它指定了用于渲染的每个通道的语义:
RG、紫外线
RGB、BGR、YUV
RGBA, BGRA
...
还支持许多特殊的 YUV 格式。在这种情况下,格式字符串还定义了数据布局。
NV12(两个平面:一个Y平面,一个压缩UV平面,在两个维度上都进行了2次子采样)
YV12(三个平面:一个 Y 平面,每个压缩的 U 和 V 平面,在两个维度上都进行了 2 次采样)
但是,我不清楚如何使 Image Watch 以操作符显示图像NV12和YV12格式@mem。
帮助页面不包含太多信息。
我设法显示灰色单通道图像,指定UINT8为通道类型。我还可以正确显示通道类型 =UINT8和 3 个通道的BGR 图像:@mem(pBGR, UINT8, 3, 640, 480, 640*3)。这在文档中有所描述,但并不明显。
我试过渠道和格式字符串带或不带引号的数字的不同组合:@mem(ptr, NV12, 3, 640, 480, 640*3),@mem(ptr, "NV12", 1, 640, 480, 640*3),@mem(ptr, UINT8NV12, 3, 640, 480, 640*3) @mem(ptr, NV12UINT8, 1, 640, 480, 640*3),等等-没有运气。我只看到带有单词的灰色矩形[invalid]。
与YV12.
| 归档时间: |
|
| 查看次数: |
743 次 |
| 最近记录: |