iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
1

當我們使用折線函式cv2.polylines畫出多邊形的時候,多邊形的內部通常都是空心的,如果我們想要畫出實心填滿的多邊形,就需要用到一個和cv2.polylines相似卻不盡相同的繪圖函式——cv2.fillPoly

import numpy as np
import cv2

img = np.zeros((480, 640, 3), np.uint8)

img.fill(128)

cv2.polylines差不多,cv2.fillPoly的參數設置同樣需要頂點座標,所以我們沿用上一章的設定就好:

# 頂點座標
pt = np.array([[200, 200], [300, 100], [400, 200], [400, 400], [200, 400]], np.int32)

# 用reshape轉為(-1, 1, 2)的陣列
pt = pts.reshape((-1, 1, 2))

# 顏色
color = (0, 255, 0)

cv2.polylines稍微有點不同的地方在於,cv2.fillPoly的內部參數不用加上封閉線的True/False和線條寬度,所以只需要設定底圖、頂點座標和顏色就好了。

# cv2.fillPoly(影像, 頂點座標, 顏色)
cv2.fillPoly(img, [pt], color)

印出來看看吧:

cv2.imshow('fillPolyImage', img)

cv2.waitKey(0)
cv2.destroyAllWindows()

你會發現多邊形的內部確實從空心變成實心了!

學會這兩個函式之後,如果出現需要用折線畫出多邊形的情況時,就可以依照自己的需求選擇適合的函式了。


上一篇
Day19-畫折線1
下一篇
Day21-何謂人臉辨識
系列文
OpenCV 從零開始的影像處理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言