當前位置:首頁 » 編程語言 » python輪廓

python輪廓

發布時間: 2025-01-10 23:49:23

A. 如何用python取圖片輪廓

1、查找輪廓(find_contours)

measure模塊中的find_contours()函數,可用來檢測二值圖像的邊緣慧游輪廓。

函數原型為:

skimage.measure.find_contours(array,level)

array: 一個二值數組圖像

level: 在圖像中查找輪廓的級別值

返回輪廓列表集合,可用for循環取出每一條輪廓。

例1:

importnumpyasnp
importmatplotlib.pyplotasplt
fromskimageimportmeasure,draw

#生成二值測試圖像
img=np.zeros([100,100])
img[20:40,60:80]=1#矩形
rr,cc=draw.circle(60,60,10)#小圓
rr1,cc1=draw.circle(20,30,15)#大圓
img[rr,cc]=1
img[rr1,cc1]=1

#檢測所有圖形的輪廓
contours=measure.find_contours(img,0.5)

#繪制輪廓前陵銷
fig,(ax0,ax1)=plt.subplots(1,2,figsize=(8,8))
ax0.imshow(img,plt.cm.gray)
ax1.imshow(img,plt.cm.gray)
forn,contour汪則inenumerate(contours):
ax1.plot(contour[:,1],contour[:,0],linewidth=2)
ax1.axis('image')
ax1.set_xticks([])
ax1.set_yticks([])
plt.show()

結果如下:不同的輪廓用不同的顏色顯示

B. python 圖像處理 怎樣將輪廓內部填充

可以用反選,也可以把要填充的部分選中,選擇油漆桶工具直接填充自己想要的顏色。

C. 【Python學習蝴蝶書】第八章 輪廓8-輪廓的匹配(等級匹配)

等級匹配通過逐步削減或填充輪廓邊緣的尖角或凹陷,減少多邊形頂點的數量,形成一個每步操作的三角形作為葉節點的二分樹。最終頂點剩下4個,再被分解為兩個三角形,作為根節點的子節點,形成二分樹結構。

等級匹配過程可直觀理解為輪廓頂點的遞減過程,形成具有根節點和葉節點的二分樹。每一步的三角形代表一個葉節點,最終輪廓頂點減少至四個,形成兩個三角形作為根節點的兩個子節點。

實現等級匹配的原理圖通常顯示了此過程,包括從原始輪廓到最終二分樹的轉換。然而,這個過程的魯棒性可能不高,輪廓上微小的變化可能會導致樹結構發生顯著變化。

凸包和凸缺陷是輪廓分析中的兩個關鍵概念。凸包是指輪廓頂點形成的外角均大於180度的多邊形。凸缺陷則表示輪廓相對於凸包的偏差區域。

凸包的概念可以通過計算輪廓點集的凸包角點來實現,Python中提供cv2.convexHull函數完成此任務。該函數接收輪廓點集作為參數,並可選擇輸出凸包角點的坐標或索引,以及決定角點排列方向。

凸缺陷則通過cv2.convexityDefects函數計算,該函數需要輪廓點集、凸包點索引作為輸入,輸出每個缺陷的起始點、終止點、最遠輪廓點索引和最遠距離。

實際應用中,通過cv2.convexHull函數可以計算出輪廓的凸包,如圖中藍色多邊形所示。接著,使用cv2.convexityDefects函數獲取凸包與原始輪廓之間的凸缺陷信息。通過將起始點與終止點相連,可以得到凸包的輪廓線,同時,標記出凸缺陷中最遠點與凸包邊的距離。

熱點內容
可編程交直流電源 發布:2025-03-10 14:40:19 瀏覽:568
c語言編程軟體安裝教程 發布:2025-03-10 14:20:01 瀏覽:85
java判斷變數類型 發布:2025-03-10 14:19:50 瀏覽:578
讀寫存儲器解釋 發布:2025-03-10 14:04:22 瀏覽:93
vbs腳本if 發布:2025-03-10 13:56:18 瀏覽:804
手游腳本開發平台 發布:2025-03-10 13:45:10 瀏覽:155
javahttp上傳圖片 發布:2025-03-10 13:39:56 瀏覽:34
v6買哪個配置最好 發布:2025-03-10 13:14:21 瀏覽:336
一般伺服器連接失敗是什麼原因 發布:2025-03-10 13:13:31 瀏覽:775
封裝和編譯 發布:2025-03-10 13:07:07 瀏覽:768