日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python+OpenCV图像处理(十一)图像轮廓检测

發(fā)布時間:2024/7/23 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python+OpenCV图像处理(十一)图像轮廓检测 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

圖像輪廓檢測

?

(一)檢測輪廓

在OpenCV-python中,使用cv2.findContours()函數(shù)來對圖像進行輪廓檢測。

返回三個值:image,contours,hierarchy

contours指的是輪廓本身,hierarchy是每條輪廓對應(yīng)的屬性

cv2.findContours(image, mode, method[, contours[, hierarchy[, offset ]]])

參數(shù):

  • 第一個參數(shù)是尋找輪廓的圖像;
  • 第二個參數(shù)表示輪廓的檢索模式:cv2.RETR_EXTERNAL表示只檢測外輪廓? ? cv2.RETR_LIST檢測的輪廓不建立等級關(guān)系,cv2.RETR_CCOMP建立兩個等級的輪廓,上面的一層為外邊界,里面的一層為內(nèi)孔的邊界信息。如果內(nèi)孔內(nèi)還有一個連通物體,這個物體的邊界也在頂層。cv2.RETR_TREE建立一個等級樹結(jié)構(gòu)的輪廓。
  • 第三個參數(shù)method為輪廓的近似方法。cv2.CHAIN_APPROX_NONE存儲所有的輪廓點,相鄰的兩個點的像素位置差不超過1,即max(abs(x1-x2),? abs(y1-y2))=1。? ?cv2.CHAIN_APPROX_SIMPLE壓縮水平方向,垂直方向,對角線方向的元素,只保留該方向的終點坐標,例如一個矩陣輪廓只需4個點來保存輪廓信息。? ? cv2.CHAIN_APPROX_TC89_L1,? ? cv2.CHAIN_APPROX_TC89_KCOS使用teh-Chini chain近似算法??

?(二)繪制輪廓

OpenCV中使用cv2.drawContours在圖像上繪制輪廓

cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[,maxLevel[, offset ]]]]])

參數(shù):

  • 第一個參數(shù)傳入所要繪制輪廓的背景圖片
  • 第二個參數(shù)是輪廓本身
  • 第三個參數(shù)指定繪制輪廓中的哪條輪廓,如果是-1,則繪制其中的所有的輪廓。thickness表示的是輪廓的寬度,如果是-1(cv2.FILLED),表示為填充模式。

(三)代碼實現(xiàn)?

# 輪廓檢測 img = cv2.imread('2.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 獲取灰度圖 ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU) # 利用閾值自動選擇的方法獲取二值圖像 image, contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 檢測輪廓 cv2.drawContours(img, contours, -1, (0, 255, 0), 1) # 畫出輪廓 cv2.imshow('gray', binary) cv2.imshow('res', img) cv2.waitKey(0) cv2.destroyAllWindows()

總結(jié)

以上是生活随笔為你收集整理的python+OpenCV图像处理(十一)图像轮廓检测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。