描繪照片的輪廓形狀并保存
import cv2
from matplotlib import pyplot as plt
# 1.先找到輪廓
img = cv2.imread('E:\Python-workspace\OpenCV\OpenCV/beyond.png', 0)
_, thresh = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
image, conturs, hierarchy = cv2.findContours(thresh, 3, 2)
cnt = conturs[0]# 2.進行多邊形逼近,得到多邊形的角點
approx = cv2.approxPolyDP(cnt, 3, True)#True表示該照片的圖形為封閉圖形# 3.畫出多邊形
image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)
cv2.polylines(image, [approx], True, (0, 255, 0), 2)#(0, 255, 0)為綠色,來控制邊緣的顏色
plt.imshow(image),plt.show()
cv2.imwrite("E:\Python-workspace\OpenCV\OpenCV/YY.png",image)#保存照片
cv2.destroyAllWindows()#退出
效果如下:
運行前:
運行中:
運行后: