问题引入
在小强学Python+OpenCV之-1.4.2裁剪一节,我们使用的是numpy数组切片功能实现图片区域的裁剪。
那么,如果我们想要裁剪图像中任意形状的区域时,应该怎么办呢?
答案是,使用掩膜(masking)。
但是这一节我们先看一下掩膜的基础。图像的位运算。
代码
编写python脚本masking.py如下:
# 导入库
import numpy as np
import argparse
import cv2
# 构建参数解析器
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True, help="Path to the image")
args = vars(ap.parse_args())
# 加载猫的图像
image = cv2.imread(args["image"])
cv2.imshow("Cat", image)
# 创建矩形区域,填充白色255
rectangle = np.zeros(image.shape[0:2], dtype = "uint8")
cv2.rectangle(rectangle, (25, 25), (275, 275),