Qt加OpenCV构建二维图像处理界面(2)

开始写算法咯

一开始肯定是从简单的开始,那就从彩图转灰度,以及单独显示红绿蓝三通道图像吧。

彩图转灰的原理

这是一个很有名的心理学公式:Gray = 0.2989*R + 0.5870*G + 0.1140*B。但是浮点型运算很占时间,所以我们该怎么优化呢?大体思路是把浮点型运算转换为整型运算,再把整型运算转换为位移运算。那么我们很自然的想到:Gray=(2989*R+5870*G+1140*B)/1000;但是1000不是2的整数次方,不好进行位移。为了方便位移,我们应该乘以2的整数次幂,
所以我们取2的8次方幂,来看一看:
0.2989*2^8=76.5814;
0.5870*2^8=150.272;
0.1140*2^8=29.184;这就是很通用的彩图转灰度的公式 Gray = (R*76 + G*150 + B*30) >> 8;我也是采用的这个方法。

上代码

老规矩现在vs下面测试一下,看看有没有bug以及速度如何.
这里写图片描述
结果如下:
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值