成都建设网站报价,给企业做网站收入,郑州百姓网二手货车,联合早报 即时消息使用掩模和按位运算方式实现的对脸部打码、解码实例
代码如下#xff1a;
import cv2
import numpy as np
#读取原始载体图像
lenacv2.imread(lena.png,0)
#读取原始载体图像的 shape 值
r,clena.shape
masknp.zeros((r,c),dtypenp.uint8)
mask[220:400,250:350…使用掩模和按位运算方式实现的对脸部打码、解码实例
代码如下
import cv2
import numpy as np
#读取原始载体图像
lenacv2.imread(lena.png,0)
#读取原始载体图像的 shape 值
r,clena.shape
masknp.zeros((r,c),dtypenp.uint8)
mask[220:400,250:350]1
#获取一个 key,打码、解码所使用的密钥
keynp.random.randint(0,256,size[r,c],dtypenp.uint8)
#获取打码脸
#使用密钥 key 对原始图像 lena 加密
lenaXorKeycv2.bitwise_xor(lena,key)
#获取加密图像的脸部信息 encryptFace
encryptFacecv2.bitwise_and(lenaXorKey,mask*255)
#将图像 lena 内的脸部值设置为 0得到 noFace1
noFace1cv2.bitwise_and(lena,(1-mask)*255)
#得到打码的 lena 图像
maskFaceencryptFacenoFace1
#将打码脸解码
#将脸部打码的 lena 与密钥 key 进行异或运算得到脸部的原始信息
extractOriginalcv2.bitwise_xor(maskFace,key)
#将解码的脸部信息 extractOriginal 提取出来得到 extractFace
extractFacecv2.bitwise_and(extractOriginal,mask*255)
#从脸部打码的 lena 内提取没有脸部信息的 lena 图像得到 noFace2
noFace2cv2.bitwise_and(maskFace,(1-mask)*255)
#得到解码的 lena 图像
extractLenanoFace2extractFace
#显示图像
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.imshow(extractOriginal,extractOriginal)
cv2.imshow(extractFace,extractFace)
cv2.imshow(noFace2,noFace2)
cv2.imshow(extractLena,extractLena)
cv2.waitKey()
cv2.destroyAllWindows()运行效果 运行上述程序会出现如图 所示的图像其中 图(a)是原始图像 lena本程序要对其脸部进行打码。 图(b)是模板图像 mask其中白色区域的像素值为 1黑色区域的像素值为 0。为了方便 显示在使用函数 cv2.imshow()显示该图像时将其中的值 1 调整为 255。 图©是模板图像 mask图(b)的反色图。 图(d)是密钥图像 key该图像使用随机数生成。 图(e)是整体打码图像 lenaXorKey是将图像 lena图(a)和密钥图像 key图(d)进 行异或运算得到的。 图(f)是从整体打码图像图(e)内提取的脸部打码图像 encryptFace。 图(g)是从图像 lena图(a)内提取的不包含脸部信息的图像 noFace1在提取过程中 将模板图像 mask 的反色图图©作为模板。 图(h)是对图像 lena 的脸部进行打码的结果图像 maskFace该图像是通过对脸部打码图 像 encryptFace图(f)和不包含脸部信息的图像 noFace1图(g)进行按位或运算 得到的。 图(i)是提取的初步原始图像 extractOriginal该图像是通过对打码脸部图像 maskFace图 (h)和密钥图像 key图(d)进行异或运算得到的。 图(j)是从提取的初步原始图像 extractOriginal图(i)中提取的脸部图像 extractFace。 图(k)从脸部打码的结果图像 maskFace图(h)内提取的不包含脸部信息的图像 noFace2。