最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python通過OpenCV的findContours獲取輪廓并切割實(shí)例

 更新時間:2018年01月05日 10:22:41   作者:loovelj  
這篇文章主要介紹了Python通過OpenCV的findContours獲取輪廓并切割實(shí)例,具有一定借鑒價值,需要的朋友可以參考下

1 獲取輪廓

OpenCV2獲取輪廓主要是用cv2.findContours

import numpy as np
import cv2

im = cv2.imread('test.jpg')
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

其中,findContours的第二個函數(shù)很重要,主要分為 cv2.RETR_LIST, cv2.RETR_TREE, cv2.RETR_CCOMP, cv2.RETR_EXTERNAL,具體含義可參考官方文檔

2 畫出輪廓

為了看到自己畫了哪些輪廓,可以使用 cv2.boundingRect()函數(shù)獲取輪廓的范圍,即左上角原點(diǎn),以及他的高和寬。然后用cv2.rectangle()方法畫出矩形輪廓

for i in range(0,len(contours)): 
  x, y, w, h = cv2.boundingRect(contours[i])  
  cv2.rectangle(image, (x,y), (x+w,y+h), (153,153,0), 5) 

3切割輪廓

輪廓的切割主要是通過數(shù)組切片實(shí)現(xiàn)的,不過這里有一個小技巧:就是圖片切割的w,h是寬和高,而數(shù)組講的是行(row)和列(column)

所以,在切割圖片時,數(shù)組的高和寬是反過來寫的

  newimage=image[y+2:y+h-2,x+2:x+w-2] # 先用y確定高,再用x確定寬
      nrootdir=("E:/cut_image/")
      if not os.path.isdir(nrootdir):
        os.makedirs(nrootdir)
      cv2.imwrite( nrootdir+str(i)+".jpg",newimage) 
      print (i)

這樣就可以把確定的輪廓都切割出來了。

總結(jié)

以上就是本文關(guān)于Python通過OpenCV的findContours獲取輪廓并切割實(shí)例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

python+opencv輪廓檢測代碼解析

OpenCV-Python實(shí)現(xiàn)輪廓檢測實(shí)例分析

如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

最新評論

连平县| 台东县| 镇远县| 绵阳市| 山东| 十堰市| 德惠市| 韩城市| 永川市| 凌源市| 禹城市| 高青县| 开江县| 上林县| 抚州市| 米泉市| 元氏县| 石渠县| 古交市| 右玉县| 会昌县| 芒康县| 甘孜| 扶余县| 天峨县| 饶河县| 买车| 普宁市| 大丰市| 武功县| 汤阴县| 深泽县| 泰兴市| 连州市| 蓬安县| 神木县| 闵行区| 郧西县| 东乡县| 内乡县| 上虞市|