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

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文件,不需要考虑第三个参数的设置。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值