您的位置:首页 > 运维架构

Opencv关于PNG图像的load和save问题

2014-01-20 14:24 309 查看
Opencv作为开源的免费软件,bug和功能上都有问题(可以用Intel的ipp来代替)

比如png带透明度的文件,查资料说,Opencv不支持png的第4个通道,即透明度通道。

有的说要修改opencv里png解码函数然后重新编译实现对透明通道的支持,但这方法很麻烦,ios、android、windows下都要重新编译。

抱着试试的想法,实验了一下,貌似解决了问题:

1、cvloadimage载入png文件时,默认的第2个参数是1,即CV_LOAD_IMAGE_COLOR,生成的iplimage对象的channel数是3,而不是4,丢失了第4通道。需要改为cvloadimage(pbuf,-1)得到的iplimage对象就是4个channel;

2、opencv的cvshowimage函数,显示对应的iplimage对象还是错误的,可以忽略不管丫的。

3、在对生成的iplimage对象处理时,记得要处理第4个通道的数据,比如得到每个像素点的cvscalar对象a,要对a.val[3]数据进行处理!

4、保存时,可以直接使用cvsaveimage函数保存为png文件,不需要考虑第三个参数的设置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: