版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012435142/article/details/79713105
image Watch高级应用:自定义图像格式
image watch documents
https://imagewatch.azurewebsites.net/ImageWatchHelp/ImageWatchHelp.htm#_Toc351981452
Image watch是一个vs的扩展插件,可以在调试代码过程中方便的显示图像。Image Watch支持OpenCV的四类图像类型:_cv::Mat__<>,_cv::Mat_, _CvMat_, __IplImage_
,是OpenCV编程调试的神器。网上有很多关于Image Watch结合OpenCV的安装和使用教程,也许现在已经用的很熟练了。但是也许你并不知道,原来Image Watch也支持自定义的图像格式,也就是说你可以在自己开发图像处理程序,不依赖OpenCV时也用上此神器。
下面就介绍如何给Image Watch添加自定义图像格式。
1.首先明确Image Watch支持的像素格式
· INT8, UINT8
· INT16, UINT16
· INT32
· FLOAT16
· FLOAT32
· FLOAT64
使用例子
Image Watch 安装好之后配置目录:
C:\Users\steve\AppData\Local\Microsoft\VisualStudio\12.0\Extensions\kcc2xu35.30r\
定义自己的图像类型
struct M8UImage
{
int cols;
int rows;
int channels;
unsigned char* data;
};
新建配置文件ImageWatchMyImage.natvis,保存到”C:\Users\steve\Documents\Visual Studio 2013\Visualizers\”目录下
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1"
MenuName="Add to Image Watch"/>
<Type Name="M8UImage">
<UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" />
</Type>
<Type Name="M8UImage">
<Expand>
<Synthetic Name="[type]">
<DisplayString>UINT8</DisplayString>
</Synthetic>
<Item Name="[channels]">channels</Item>
<Item Name="[width]">cols</Item>
<Item Name="[height]">rows</Item>
<Item Name="[data]">data</Item>
<Item Name="[stride]">cols*channels</Item>
</Expand>
</Type>
</AutoVisualizer>
VS中编程实例
#include<iostream>
struct M8UImage
{
int cols;
int rows;
int channels;
unsigned char* data;
};
int main()
{
M8UImage mImg;
mImg.rows = img1.rows;
mImg.cols = img1.cols;
mImg.channels = 1;
unsigned char * data = new unsigned char[512 * 640 * 1]();
for (int i = 0; i < 512 * 640 * 1; i++)
{
data[i] = (int)(i / 256);
}
mImg.data =data;
return 0;
}