openCV—Python(6)—— 图像算数与逻辑运算
2015-07-29 20:12
941 查看
一、函数简介
1、add—图像矩阵相加
函数原型:add(src1, src2, dst=None, mask=None, dtype=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
dtype:默认选项
2、subtract—图像矩阵相加
函数原型:subtract(src1, src2, dst=None, mask=None, dtype=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
dtype:默认选项
3、bitwise_and—图像与运算
函数原型:bitwise_and(src1, src2, dst=None, mask=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
4、bitwise_or—图像或运算
函数原型:bitwise_and(src1, src2, dst=None, mask=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
5、bitwise_xor—图像异或运算
函数原型:bitwise_and(src1, src2, dst=None, mask=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
6、bitwise_not—图像非运算
函数原型:bitwise_and(src1, src2, dst=None, mask=None)
src1:图像矩阵1
src1:图像矩阵2
dst:默认选项
mask:默认选项
二、实例演练
1、原图像每个像素都加100,大于255的按255处理
代码如下:#encoding:utf-8 # #图像运算 # import cv2 import numpy as np image = cv2.imread("H:\\img\\lena.jpg") cv2.imshow("Original",image) cv2.waitKey(0) #图像image各像素加100 M = np.ones(image.shape,dtype="uint8")*100#与image大小一样的全100矩阵 added = cv2.add(image,M)#将图像image与M相加 cv2.imshow("Added",added) cv2.waitKey(0)
结果如下:
1、原图像
2、相加后的结果
2、原图像每个像素都减去50,小于0的按0处理
代码如下:#encoding:utf-8 # #图像运算 # import cv2 import numpy as np image = cv2.imread("H:\\img\\lena.jpg") cv2.imshow("Original",image) cv2.waitKey(0) #图像image各像素减去50 M = np.ones(image.shape,dtype="uint8")*50#与image大小一样的全50矩阵 subtracted = cv2.subtract(image,M)#将图像image与M相减 cv2.imshow("Subtracted", subtracted) cv2.waitKey(0)
结果如下:
1、原图像
2、相减后的结果
3、矩形与圆形的交运算
代码如下:#encoding:utf-8 # #图像的逻辑运算 # import numpy as np import cv2 #画矩形 Rectangle = np.zeros((300,300),dtype="uint8") cv2.rectangle(Rectangle,(25,25),(275,275),255,-1) cv2.imshow("Rectangle",Rectangle) cv2.waitKey(0) #画圆形 Circle = np.zeros((300,300),dtype="uint8") cv2.circle(Circle,(150,150),150,255,-1) cv2.imshow("Circle",![这里写图片描述](http://img.blog.csdn.net/20150729200613202)Circle) cv2.waitKey(0) #图像的交 bitwiseAnd = cv2.bitwise_and(Rectangle,Circle) cv2.imshow("AND",bitwiseAnd) cv2.waitKey(0)
结果如下:
1、矩形与圆形
2、图像相交后的结果
4、矩形与圆形的或运算
代码如下:#encoding:utf-8 # #图像的逻辑运算 # import numpy as np import cv2 #画矩形 Rectangle = np.zeros((300,300),dtype="uint8") cv2.rectangle(Rectangle,(25,25),(275,275),255,-1) cv2.imshow("Rectangle",Rectangle) cv2.waitKey(0) #画圆形 Circle = np.zeros((300,300),dtype="uint8") cv2.circle(Circle,(150,150),150,255,-1) cv2.imshow("Circle",Circle) cv2.waitKey(0) #图像的或 bitwiseOr = cv2.bitwise_or(Rectangle,Circle) cv2.imshow("OR",bitwiseOr) cv2.waitKey(0)
结果如下:
1、矩形与圆形
2、图像或后的结果
5、矩形与圆形的异或运算
代码如下:#encoding:utf-8 # #图像的逻辑运算 # import numpy as np import cv2 #画矩形 Rectangle = np.zeros((300,300),dtype="uint8") cv2.rectangle(Rectangle,(25,25),(275,275),255,-1) cv2.imshow("Rectangle",Rectangle) cv2.waitKey(0) #画圆形 Circle = np.zeros((300,300),dtype="uint8") cv2.circle(Circle,(150,150),150,255,-1) cv2.imshow("Circle",Circle) cv2.waitKey(0) #图像的异或 bitwiseXor = cv2.bitwise_xor(Rectangle,Circle) cv2.imshow("XOR",bitwiseXor) cv2.waitKey(0)
结果如下:
1、矩形与圆形
2、图像相交后的结果
6、圆形的非运算
代码如下:#encoding:utf-8 # #图像的逻辑运算 # import numpy as np import cv2 #画圆形 Circle = np.zeros((300,300),dtype="uint8") cv2.circle(Circle,(150,150),150,255,-1) cv2.imshow("Circle",Circle) cv2.waitKey(0) #圆形的非运算 bitwiseNot = cv2.bitwise_not(Circle) cv2.imshow("NOT",bitwiseNot) cv2.waitKey(0)
结果如下:
1、圆形
2、圆形取非后的结果
相关文章推荐
- python os.walk和os.path.walk
- 用python免登錄把人人網某個相冊的全部照片下載下來
- [python]学习笔记3-字符串内建函数2
- Python 用 os.walk 遍历目录
- python练习题(二)
- python模拟新浪微博登陆功能(新浪微博爬虫)
- python显示灰度图
- Python yield 使用浅析
- Python安装
- python设计模式之Borg模式
- python设计模式之Builder模式
- python设计模式之状态模式
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- python设计模式之抽象工厂模式
- python设计模式之命令调度模式
- python设计模式之装饰器模式
- python设计模式之享元模式
- python设计模式之策略模式
- python设计模式之单例模式
- python基本语法