輪廓(contours),指的是有相同顏色或者密度,連線所有連續點的一條曲線。檢測輪廓的工作對形狀分析和物體檢測與識別都非常有用。
在輪廓檢測之前,首先要對進行二值化或者canny邊緣檢測。在opencv中,尋找的物體是白色的,而背景必須是黑色的,因此預處理時必須保證這一點。
import cv2
#讀入img = cv2.imread("1.png")
# 必須先轉化成灰度圖
gray = cv2.cvtcolor(img, cv2.color_bgr2gray)
# 二值化
ret, thresh = cv2.threshold(gray, 127, 255, cv2.thresh_binaey)
# 尋找輪廓
# 畫出輪廓,-1,表示所有輪廓,畫筆顏色為(0, 255, 0),即green,粗細為3
cv2.drawcontours(img, contours, -1, (0, 255, 0), 3)
# 顯示
cv2.namedwindow("contours", cv2.normal_window)
cv2.imshow("contours", img)
# 等待鍵盤輸入
cv2.waitkey(0)
cv2.destroyallwindows()
參考: python opencv 輪廓屬性
import cv2 import numpy as np 高寬比 函式cv2.moments 會給你乙個字典,包含所有矩值 m cv2.moments cnt 這是目標的邊界矩形的寬高比 x,y,w,h cv2.boundingrect cnt aspect ratio float w h ext...
python opencv 輪廓層級
一般來說我們用cv2.findcontours 函式來檢測影象裡的目標,有時候目標在不同的地方,但是在有些情況下,有些圖形在別的圖形裡面,就像圖形巢狀,在這種情況下,我們把外面那層圖形叫做parent,裡面的叫child。這樣圖形裡的輪廓之間就有了關係。我們可以指定乙個輪廓和其他之間的是如何連線的,...
python opencv 輪廓基本繪製
什麼是輪廓?輪廓可以簡單地解釋為連線具有相同顏色或強度的所有連續點 沿邊界 的曲線。輪廓是用於形狀分析以及物件檢測和識別的有用工具。findcontour 函式中有三個引數,第乙個是源影象,第二個是輪廓檢索模式,第三個是輪廓逼近方法。輸出等高線和層次結構。輪廓是影象中所有輪廓的python列表。每個...