openCV—Python(6)——图像算数与逻辑运算
来源:互联网 发布:变脸软件有哪些 编辑:程序博客网 时间:2024/06/01 19:42
一、函数简介
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 cv2import numpy as npimage = cv2.imread("H:\\img\\lena.jpg")cv2.imshow("Original",image)cv2.waitKey(0)#图像image各像素加100M = 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 cv2import numpy as npimage = cv2.imread("H:\\img\\lena.jpg")cv2.imshow("Original",image)cv2.waitKey(0)#图像image各像素减去50M = 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 npimport 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 npimport 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 npimport 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 npimport 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、圆形取非后的结果
0 0
- openCV—Python(6)——图像算数与逻辑运算
- openCV-图像算数与逻辑运算
- openCV—Python(9)——图像平滑与滤波
- Python下使用OpenCV——图像显示与保存
- 数字图像处理-空间域增强(三)(图像的算数与逻辑运算)
- 《python+opencv实践》四、图像特征提取与描述——29理解图像特征
- OpenCV-Python——图像处理
- OpenCV-Python——图像阈值
- OpenCV-Python——图像金字塔
- OpenCV-Python—图像平滑和模糊
- 图像显示与加载——opencv
- 图像显示与加载——opencv
- 《python+opencv实践》四、图像特征提取与描述——30Harris 角点检测
- python opencv —— io(帧、图像、视频的读取与保存)
- 【OpenCV图像处理】三、图像的逻辑运算
- opencv—显示图像
- openCV—Python(5)——图像几何变换
- openCV—Python(10)——图像阈值化处理
- Android通过JSON读写Mysql(写)
- c语言产生随机数的方法:
- 动态链接库
- 【cm-3】汇编中的句子:AREA |.text|, CODE, READONLY, ALIGN=2详解
- 关于Latex中pdf和eps图片的处理
- openCV—Python(6)——图像算数与逻辑运算
- JavaScript常用事件
- 103 Binary Tree Zigzag Level Order Traversal
- hdu 5417 RGCDQ 2015多校联合训练赛
- Activity与Fragment状态保存问题
- 小白学开发(iOS)OC_类的互引用(2015-07-29)
- easyui-combobox下拉多选
- 帝国CMS常用函数介绍
- Delete Node in a Linked List