python多边形裁剪


# coding=utf-8
import numpy as np

import cv2
from PIL import Image

image = cv2.imread("d:/11.jpeg")

b  = np.array([[100,100],  [250,100], [300,220],[100,230]], dtype = np.int32)

roi_t = []
for i in range(4):
    roi_t.append(b[i])

roi_t = np.asarray(roi_t)
roi_t = np.expand_dims(roi_t, axis=0)
im = np.zeros(image.shape[:2], dtype = "uint8")
cv2.polylines(im, roi_t, 1, 255)
cv2.fillPoly(im, roi_t, 255)

mask = im
cv2.imshow("Mask", mask)
masked = cv2.bitwise_and(image, image, mask=mask)
cv2.imshow("Mask to Image", masked)


imp = Image.fromarray(image)

array = np.zeros((masked.shape[0], masked.shape[1], 4), np.uint8)
array[:, :, 0:3] = masked
array[:, :, 3] = 0
array[:,:,3][np.where(array[:,:,0]>2)]=255
array[:,:,3][np.where(array[:,:,1]>2)]=255
array[:,:,3][np.where(array[:,:,2]>2)]=255
print(array.max())
image_1 = Image.fromarray(array)
image_1.save("222.png","PNG")

猜你喜欢

转载自blog.csdn.net/jacke121/article/details/80441549