python opencv 輪廓基本繪製

2022-06-10 15:57:06 字數 1422 閱讀 5794

什麼是輪廓?

輪廓可以簡單地解釋為連線具有相同顏色或強度的所有連續點(沿邊界)的曲線。輪廓是用於形狀分析以及物件檢測和識別的有用工具。

findcontour()函式中有三個引數,第乙個是源影象,第二個是輪廓檢索模式,第三個是輪廓逼近方法。輸出等高線和層次結構。輪廓是影象中所有輪廓的python列表。每個單獨的輪廓是乙個(x,y)座標的numpy陣列的邊界點的物件。

注意

import

cv2 as cv

import

numpy as np

from matplotlib import

pyplot as plt

from google.colab.patches import

cv2_imshow

img=cv.imread('

輪廓.jpg')

imgray =cv.cvtcolor(img, cv.color_bgr2gray)

ret, thresh = cv.threshold(imgray, 127, 255, 0)

如何繪製輪廓?要繪製輪廓,請使用cv.drawcontours函式。只要有邊界點,它也可以用來繪製任何形狀。它的第乙個引數是源影象,第二個引數是應該作為python列表傳遞的輪廓,第三個引數是輪廓的索引(在繪製單個輪廓時有用。要繪製所有輪廓,請傳遞-1),其餘引數是顏色,厚度等等

注意

cv.drawcontours(img, contours, -1, (0,255,0), 3)

cv2_imshow(img)

結果:很多人畫圖時明明用了彩色,但沒有效果,請檢查你是在哪個圖上畫,畫在灰度圖和二值圖上顯然是沒有彩色的(⊙o⊙)

輪廓近似方法?

這是cv.findcontours函式中的第三個引數。它實際上表示什麼?

上面我們告訴我們輪廓是強度相同的形狀的邊界。它儲存形狀邊界的(x,y)座標。但是它儲存所有座標嗎?這是通過這種輪廓近似方法指定的。

參考:具體的例子還可以殘參考:

python opencv 輪廓檢測

輪廓 contours 指的是有相同顏色或者密度,連線所有連續點的一條曲線。檢測輪廓的工作對形狀分析和物體檢測與識別都非常有用。在輪廓檢測之前,首先要對進行二值化或者canny邊緣檢測。在opencv中,尋找的物體是白色的,而背景必須是黑色的,因此預處理時必須保證這一點。import cv2 讀入i...

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。這樣圖形裡的輪廓之間就有了關係。我們可以指定乙個輪廓和其他之間的是如何連線的,...