一、基本思路
通过OpenCV读取图片,进行二值化操作后寻找轮廓,并且将轮廓保存再与原图片进行位与运算,完成裁切效果。本项目中主要提取图片中的圆形以及三角形。
二、代码实例
import cv2 as cv
import numpy as np
src = cv.imread(r"D:\test5.jpg") # 读取图片
ROI = np.zeros(src.shape, np.uint8) # 创建与原图同尺寸的空numpy数组,用来保存ROI信息
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) # 灰度化
ret, binary = cv.threshold(gray,
0, 255,
cv.THRESH_BINARY_INV | cv.THRESH_TRIANGLE) # 自适应二值化
out_binary, contours, hierarchy = cv.findContours(binary,
cv.RETR_EXTERNAL