国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python圖像處理之邊沿輪廊檢驗

89542767 / 421人閱讀

  此篇文章主要是詳細介紹了python圖像處理之邊沿輪廊檢驗實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪


  前言


  在前的python圖像處理簡易過濾中,己經(jīng)介紹了許多算法用于檢驗邊沿,在其中用到較多的canny算法圖像分割。


  這篇大家介紹某些其他方式來測試輪廊。


  1、搜索輪廊(find_contours)


  measure控制模塊中的find_contours()函數(shù)公式,主要用來檢驗灰度圖像邊緣輪廊。


  函數(shù)原型為:


  skimage.measure.find_contours(array,level)


  array:一種二值二維數(shù)組圖象


  level:在源圖像搜索輪廊的等級值


  回到輪廊目錄結(jié)合,能用for循環(huán)取下每條輪廊。


  例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,contourinenumerate(contours):
  ax1.plot(contour[:,1],contour[:,0],linewidth=2)
  ax1.axis('image')
  ax1.set_xticks([])
  ax1.set_yticks([])
  plt.show()


  結(jié)果如下:不同的輪廓用不同的顏色顯示

02.png

  importmatplotlib.pyplotasplt
  fromskimageimportmeasure,data,color
  #生成二值測試圖像
  img=color.rgb2gray(data.horse())
  #檢測所有圖形的輪廓
  contours=measure.find_contours(img,0.5)
  #繪制輪廓
  fig,axes=plt.subplots(1,2,figsize=(8,8))
  ax0,ax1=axes.ravel()
  ax0.imshow(img,plt.cm.gray)
  ax0.set_title('originalimage')
  rows,cols=img.shape
  ax1.axis([0,rows,cols,0])
  forn,contourinenumerate(contours):
  ax1.plot(contour[:,1],contour[:,0],linewidth=2)
  ax1.axis('image')
  ax1.set_title('contours')
  plt.show()

 

04.png

    2、逼近多邊形曲線


  逼近多邊形曲線有兩個函數(shù):subdivide_polygon()和approximate_polygon()


  subdivide_polygon()采用B樣條(B-Splines)來細分多邊形的曲線,該曲線通常在凸包線的內(nèi)部。


  函數(shù)格式為:


  skimage.measure.subdivide_polygon(coords,degree=2,preserve_ends=False)


  coords:坐標(biāo)點序列。


  degree:B樣條的度數(shù),默認為2


  preserve_ends:如果曲線為非閉合曲線,是否保存開始和結(jié)束點坐標(biāo),默認為false


  返回細分為的坐標(biāo)點序列。


  approximate_polygon()是基于Douglas-Peucker算法的一種近似曲線模擬。它根據(jù)指定的容忍值來近似一條多邊形曲線鏈,該曲線也在凸包線的內(nèi)部。


  函數(shù)格式為:


  skimage.measure.approximate_polygon(coords,tolerance)


  coords:坐標(biāo)點序列


  tolerance:容忍值


  返回近似的多邊形曲線坐標(biāo)序列。


  例:


  importnumpyasnp
  importmatplotlib.pyplotasplt
  fromskimageimportmeasure,data,color
  #生成二值測試圖像
  hand=np.array([[1.64516129,1.16145833],
  [1.64516129,1.59375],
  [1.35080645,1.921875],
  [1.375,2.18229167],
  [1.68548387,1.9375],
  [1.60887097,2.55208333],
  [1.68548387,2.69791667],
  [1.76209677,2.56770833],
  [1.83064516,1.97395833],
  [1.89516129,2.75],
  [1.9516129,2.84895833],
  [2.01209677,2.76041667],
  [1.99193548,1.99479167],
  [2.11290323,2.63020833],
  [2.2016129,2.734375],
  [2.25403226,2.60416667],
  [2.14919355,1.953125],
  [2.30645161,2.36979167],
  [2.39112903,2.36979167],
  [2.41532258,2.1875],
  [2.1733871,1.703125],
  [2.07782258,1.16666667]])
  #檢測所有圖形的輪廓
  new_hand=hand.copy()
  for_inrange(5):
  new_hand=measure.subdivide_polygon(new_hand,degree=2)
  #approximatesubdividedpolygonwithDouglas-Peuckeralgorithm
  appr_hand=measure.approximate_polygon(new_hand,tolerance=0.02)
  print("Numberofcoordinates:",len(hand),len(new_hand),len(appr_hand))
  fig,axes=plt.subplots(2,2,figsize=(9,8))
  ax0,ax1,ax2,ax3=axes.ravel()
  ax0.plot(hand[:,0],hand[:,1],'r')
  ax0.set_title('originalhand')
  ax1.plot(new_hand[:,0],new_hand[:,1],'g')
  ax1.set_title('subdivide_polygon')
  ax2.plot(appr_hand[:,0],appr_hand[:,1],'b')
  ax2.set_title('approximate_polygon')
  ax3.plot(hand[:,0],hand[:,1],'r')
  ax3.plot(new_hand[:,0],new_hand[:,1],'g')
  ax3.plot(appr_hand[:,0],appr_hand[:,1],'b')
  ax3.set_title('all')

  

01.png

     綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/128805.html

相關(guān)文章

  • 【基礎(chǔ)知識】水平觸發(fā)與邊沿觸發(fā)

    摘要:一基礎(chǔ)水平觸發(fā)基本概念讀緩沖區(qū)不為空時讀事件觸發(fā)。開啟時,會把監(jiān)聽套接字所有可讀的事件全部讀取,此時可以使用邊沿觸發(fā)。但為了保證連接不丟失,仍然采用水平觸發(fā)通信套接字設(shè)置對于與客戶端通信使用的套接字默認使用水平觸發(fā)。 一. 基礎(chǔ) 1.1 水平觸發(fā) 基本概念 讀緩沖區(qū)不為空時, 讀事件觸發(fā)。寫緩沖區(qū)不為滿時, 寫事件觸發(fā)。處理流程 accept新的連接, 監(jiān)聽讀事件。讀事件到達, 處理讀...

    MrZONT 評論0 收藏0
  • 痞子衡嵌入式:嵌入式Cortex-M系統(tǒng)中斷延遲及其測量方法簡介

    摘要:今天痞子衡給大家分享的是系統(tǒng)中斷延遲及其測量方法。至此,系統(tǒng)中斷延遲及其測量方法痞子衡便介紹完畢了,掌聲在哪里歡迎訂閱歡迎訂閱文章會同時發(fā)布到我的博客園主頁主頁知乎主頁微信公眾號平臺上。  大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是Cortex-M系統(tǒng)中斷延遲及其測量方法。  在嵌入式領(lǐng)域里,實時性是個經(jīng)常被我們掛在嘴邊的概念,這里的實時性主要強調(diào)得是當(dāng)外界事件發(fā)生時,...

    不知名網(wǎng)友 評論0 收藏0
  • SPI總線協(xié)議

    摘要:目錄概述概述總線機制總線機制的四種工作模式的四種工作模式數(shù)據(jù)交換數(shù)據(jù)交換概述是一種同步串行通信協(xié)議,由一個主設(shè)備和一個或多個從設(shè)備組成,主設(shè)備啟動與從設(shè)備的同步通信,從而完成數(shù)據(jù)的交換。 目錄 1.SPI概述 2.SPI總線機制 3.SPI的四種工作模式 4.SPI數(shù)據(jù)交換 1.SPI概述...

    Travis 評論0 收藏0
  • Programming Computer Vision with Python (學(xué)習(xí)筆記五)

    摘要:下面是二維空間的高斯分布函數(shù)公式這個公式被稱作高斯核。高斯模糊使用高斯平均算子來實現(xiàn)的圖像模糊叫高斯模糊,也叫高斯平滑被認為是一種最優(yōu)的圖像平滑處理。 SciPy庫 SciPy庫,與之前我們使用的NumPy和Matplotlib,都是scipy.org提供的用于科學(xué)計算方面的核心庫。相對NumPy,SciPy庫提供了面向更高層應(yīng)用的算法和函數(shù)(其實也是基于NumPy實現(xiàn)的),并以子模塊...

    Rocko 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<