python-opencv 图像的算术运算与逻辑运算

图像的运算

首先进行算术运算前我们要保证两张图片的像素一致,电脑自带的画图就能完成。
在这里插入图片描述
在这里插入图片描述
由于第二张图片太白了效果不是很好,所以就把这张图片的像素值都减去128.得到下面的图片
在这里插入图片描述

算术运算:加减乘除

add_demo = cv.add(ig,color)     
subtract_demo = cv.subtract(ig,color) 
multiply_demo = cv.multiply(ig,color)
divide_demo = cv.divide(ig,color)

opencv自带的函数非常好理解,函数名就能描述出我们要做的操作。我们把每一种操作都封装成一个函数。如下:

def divide_demo(ig,color):
	divide_demo = cv.divide(ig,color)
	cv.imwrite('divide_demo.jpg',divide_demo)
	cv.namedWindow("divide_demo",cv.WINDOW_NORMAL)
	cv.imshow("divide_demo",divide_demo)
	return divide_demo

逻辑运算:与或非 异或

and_demo = cv.bitwise_and(ig,color)
or_demo = cv.bitwise_or(ig,color)
not_demo = cv.bitwise_not(ig)
xor_demo = cv.bitwise_xor(ig,color)

同上,也同样封装好。得到最终结果:
在这里插入图片描述

总结

是不是很炫酷,需要注意的是cv.*() 存在饱和机制,也就是说所有值超过255就保存为255,所有的值小于0就保存为0.如图add_demo,图片IG白色部分在执行加操作之后都是白色,图像subtract_demo黑色部分在执行减操作之后也都是黑色的,有兴趣同学可以试试numpy.add,是舍弃溢出值的机制,效果和cv.add不同。

代码

https://github.com/Clayygou/python-opencv/tree/master/Pixel_operations

参考文献

同上

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值