opencv+python 抠取图片中任意形状部分

opencv+python 抠取图片中任意形状部分

矩形:

mask = np.zeros([300, 300], dtype=np.uint8)
#[300,300]为被抠取图片的尺寸,若为灰度图可直接写成img.shape
cv2.rectangle(mask,(mask[x1,y1],mask[x2,y2]),(255,255,255),-1)
#mask[x1,y1],mask[x2,y2]为矩形的坐上和右下坐标
get_img = cv2.add(img, np.zeros(np.shape(img), dtype=np.uint8), mask=mask)
#ogray为原图

圆形同上,只需将第二行改为:

cv2.circle(mask, center, radius, color[, thickness[, lineType[, shift]]])
#注:必须为实心

任意形状:
倘若想将任意形状的部分抠出,必须先找到所求部分的轮廓信息,此处可使用cv2.findContours函数,此处不再赘述。

contours[i] = cv2.drawContours(contours[i], contours, i, (255, 0, 0), -1)
get_img = cv2.add(img, np.zeros(np.shape(img), dtype=np.uint8), mask=contours[i])
    原文作者:夏目一树
    原文地址: https://blog.csdn.net/qq_42921357/article/details/108166255
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞