如何使用OpenCV进行局部打码

题目描述:

编写程序,使用掩码对lena图像的脸部进行打码。


如何使用OpenCV进行局部打码_第1张图片

运行代码

lena=cv2.imread("lena.jpg",0)
r,c=lena.shape#获取图像长宽
mask=np.zeros((r,c),dtype=np.uint8)#生成同等大小的零矩阵
mask[100:200,91:180]=1#获取打码脸的位置
key=np.random.randint(0,256,size=[r,c],dtype=np.uint8)#生成同等大小的灰度图像 
lenaXorKey=cv2.bitwise_xor(lena,key)#实行按位异或运算操作
encryptFace=cv2.bitwise_and(lenaXorKey,mask*255)#实行按位与运算
noFace1=cv2.bitwise_and(lena,(1-mask)*255)#实行按位与运算
maskFace=encryptFace+noFace1#像素值相加 
cv2.imshow("lena",lena)
cv2.imshow("mask",mask*255) 
cv2.imshow("1-mask",(1-mask)*255)
cv2.imshow("key",key)
cv2.imshow("lenaXorKey",lenaXorKey)
cv2.imshow("encryptFace",encryptFace)
cv2.imshow("noFace1",noFace1)
cv2.imshow("maskFace",maskFace)
cv2.waitKey()
cv2.destroyAllWindows()

运行结果

你可能感兴趣的:(python应用,opencv)