图像的逻辑运算
程序员文章站
2022-07-12 12:18:53
...
按位与
dst = cv2.bitwise_and ( src1 , src2 [ , mask ] )
dst:与输入值具有相同大小的输出值
src1:第一个输入值
src2:第二个输入值
mak:可选操作掩码
# 构造掩模,使用按位与操作保留掩模内的图像。
'''
掩模:用选定的图像、图形或物体对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。
'''
import numpy as np
import cv2 as cv
image1 = cv.imread("D:/exercise/lusi.jpg") # 读取图像
cv.imshow("image1", image1) # 显示图像
image2 = np.zeros(image1.shape, dtype=np.uint8) # 构造掩模图像
'''
numpy.zeros(shape,dtype,order):
返回给定形状,类型的新数组,用0填充。
'''
image2[100:400, 100:400] = 255 # 图像切片部分设置为白色
'''
图像切片:
图像上边距离原图上边100像素
图像下边距离原图上边400像素
图像左边距离原图左边100像素
图像右边距离原图左边400像素
切片大小:300*300像素
'''
cv.imshow("image2",image2)
image3 = cv.bitwise_and(image1,image2)#两张图片进行按位与,取出掩模内的图像
cv.imshow("image3",image3)
cv.waitKey()
cv.destroyAllWindows()
运行结果:
按位或
dst = cv2.bitwise_or ( src1 , src2 [ , mask ] )
按位非
按位非后的值是:255减去原有的像素值。
dst = cv2.bitwise_not ( src [ , mask ] )
import cv2 as cv
image1 = cv.imread("D:/exercise/lusi.jpg")
cv.imshow('image1', image1)
image2 = cv.bitwise_not(image1) # 按位非 对图像取反
cv.imshow('image2', image2)
cv.waitKey()
cv.destroyAllWindows()
运行结果:
按位异或
异为1,同为0 。
dst = cv2.bitwise_xor ( src1 , src2 [ , mask ] )