Matlab风格的Plot类for Mat类OpenCV

本文介绍如何在OpenCV3.0与vs2013环境下修正并使用GitHub上的开源绘图代码,解决了从IplImage*转换到Mat类的问题。

最近在利用OpenCV处理图片,得到一些数据后发现直接用OpenCV绘制相应的图形有点难度,因为OpenCV没有类似Matlab的plot函数。但是可以需要借助开源代码。在GitHub上找到一个现成的版本, 效果不错,在blog 上还有相应的介绍说明。

GitHub代码地址:https://github.com/jack-Dong/testPolt/ 

blog参考地址:http://blog.youkuaiyun.com/xiaoxiaodongshige/article/details/48134895

不过在OpenCV3.0+vs2013下运行,出现了一些小bug,主要是因为作者在写开源代码时,用的是OpenCV2.X+vs2012。本篇博文的目的是如何在OpenCV3.0+vs2013的环境下成功运行上面开源代码(请到GitHub上下载),绘制相应的图形。

问题一:

用vs2013打开vs2012的程序时,会出现如下图的提示,直接按确定就可以了。

问题二:

生成解决方案时,会出现如下图所示的错误

原因:代码中IplImage* 转换为Mat 类时,用的OpenCV库是2.x版本的方法。而在OpenCV3.0中,该代码在编译的时候会出现错误。

解决办法:

1、打开plot.h,找到下面的内容(在稍靠后部分)

//增加一个函数把C版本的 IplImage 转换成Mat
    Mat figure()
    {
        return Mat(this->Figure);
    }

将上述代码修改为:

//增加一个函数把C版本的 IplImage 转换成Mat
	Mat figure()
	{
	Mat mat = cvarrToMat(Figure);
	return mat;
	}

2、打开plot.cpp,找到下面代码(2.jpg、3.jpg、4.ipg处一样)

imwrite("1.jpg",Mat(plot.Figure));

将上述代码修改为:

Mat mat = cvarrToMat(plot.Figure);
imwrite("1.jpg",mat);

这时重新运行代码就可以啦!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值