8-给图像打码
掩模的实质是一个二维数组。OpenCV 中的很多函数都会指定一个掩模,也称为掩码。当使用掩码操作时,操作只会在掩码上值为非空的点上执行,并将其他的点置为零。在 OpenCV 中,可以使用 cv2.bitwise_and()函数来实现按位与运算。src1 表示第一个 array 或 scalar 类型的输入值。src2 表示第二个 array 或 scalar 类型的输入值。dst 表示与输入值具有
·
实例代码:
import cv2
import numpy as np
# 获取图像
panda = cv2.imread('images/panda.jpg')
# 获取图像尺寸
r, c, ch = panda.shape
# 创建掩膜
mask = np.zeros([r, c,ch], dtype=np.uint8)
# 将掩膜区域设置为1
mask[220:400, 500:700] = 1
# 获取掩膜区域:mask属性值位置都设置成0 ,非掩码区域设置为1
noFace = cv2.bitwise_and(panda, panda, mask=(1 - mask[:, :, 0]) * 255)
cv2.imshow('panda', panda)
cv2.imshow('mask', mask*255)
cv2.imshow('1-mask', (1- mask)*255)
cv2.imshow('noFace', noFace)
cv2.waitKey(0)
cv2.destroyAllWindows()
执行结果:
解析:
1.掩码
掩模的实质是一个二维数组。OpenCV 中的很多函数都会指定一个掩模,也称为掩码。当使用掩码操作时,操作只会在掩码上值为非空的点上执行,并将其他的点置为零。
2.位运算
在 OpenCV 中,可以使用 cv2.bitwise_and()函数来实现按位与运算。
语法格式:
dst = cv2.bitwise_and( src1, src2[,mask]])式中:
dst 表示与输入值具有同样大小的 array 输出值。
src1 表示第一个 array 或 scalar 类型的输入值。
src2 表示第二个 array 或 scalar 类型的输入值。
mask 表示可选操作掩码,8 位单通道 array。
更多推荐
所有评论(0)