关于海康visionmaster算子SDK开发渲染控件SaveImage方法保存图像是黑白的解决方法

1.遇到的问题

简单概述下遇到的问题:最近项目需要用到海康的VM算子,作者使用的是高精度匹配算法,渲染控件

mvdRenderActivex1.Display();

显示的颜色是正常的,外框是红色,匹配的轮廓是绿色。如图,

但是使用渲染控件SaveImage方法保存下来的图像是黑白的,

mvdRenderActivex1.SaveImage(saveFile, MVD_FILE_FORMAT.MVD_FILE_BMP,

100, MVD_SAVE_TYPE.MVD_SAVE_RESULT_IMAGE);

如图示,

2.问题原因和解决方法

⑴问题原因

因为高精度匹配算法输入图像只支持灰度图,即图像格式MVD_PIXEL_MONO_08,我的渲染控件加载的图像就是输入图像对象,导致了保存的图像不是原图,而是灰度图。具体如下,

inputImg = new CMvdImage();
inputImg.InitImage(fileDlg.FileName, MVD_PIXEL_FORMAT.MVD_PIXEL_MONO_08);
//mvdRenderActivex1.LoadImageFromObject(inputImg); // 这个就是问题所在,应该使用从原始图像对象加载而不是从MONO_08格式的对象

⑵解决方法

新建图像对象,初始化输入图像路径并指定图像格式为MVD_PIXEL_FORMAT.MVD_PIXEL_RGB_RGB24_C3,再在渲染控件上加载该图像对象。

FilePath = "输入具体图像路径";
// 算子图像输入
inputImg = new CMvdImage();
inputImg.InitImage($"{FilePath}", MVD_PIXEL_FORMAT.MVD_PIXEL_MONO_08);
// 渲染控件图像输入
CMvdImage cImgObj = new CMvdImage();
cImgObj.InitImage($"{FilePath}", MVD_PIXEL_FORMAT.MVD_PIXEL_RGB_RGB24_C3);
mvdRenderActivex1.LoadImageFromObject(cImgObj);
mvdRenderActivex1.Display();

最后在需要的地方使用渲染控件SaveImage方法保存即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值