2020-11-23

opencv绘图只显示白色

opencv从iPhone摄像头读数据,用绘制函数时如line、circle等时显示的都是白色,查资料也没找到原因。

在processImage中处理Mat对象,图像转换等都没有问题,百思不得解。。。

查找原因中发现如果用某些转换后的图像可以绘制出颜色,开始以为是回调中的mat对象属性有什么不支持,打出各种属性也没发现问题,测试中把mat转换为RGB时可以绘制颜色,但转换为RGBA时却显示为白色,大概找出原因了,就是因为缺省传过来的图中带有alpha通道,再去查看line函数:

cv::line(image_copy, pt1, pt2, CV_RGB(0, 255, 0), 4, 8, 0);

CV_RGB的定义如下:

#define CV_RGB( r, g, b ) cvScalar( (b), (g), ®, 0 )

结合alpha的定义,0是全透明,255是不透明,原因就在此了,因为设成全透明,颜色没了,但白线还会绘制出来!

改成以下代码即可,所有绘制函数里也不能直接用CV_RGB的宏定义了!

cv::line(image_copy, pt1, pt2, cvScalar(255, 0, 0, 255), 4, 8, 0);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值