python opencv 輪廓檢測

2021-07-31 00:03:19 字數 683 閱讀 1897

輪廓(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列表。每個...