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

資訊專欄INFORMATION COLUMN

python圖像處理之邊沿輪廊檢驗(yàn)

89542767 / 428人閱讀

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


  前言


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


  這篇大家介紹某些其他方式來(lái)測(cè)試輪廊。


  1、搜索輪廊(find_contours)


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


  函數(shù)原型為:


  skimage.measure.find_contours(array,level)


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


  level:在源圖像搜索輪廊的等級(jí)值


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


  例1:


  importnumpyasnp
  importmatplotlib.pyplotasplt
  fromskimageimportmeasure,draw
  #生成二值測(cè)試圖像
  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
  #檢測(cè)所有圖形的輪廓
  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
  #生成二值測(cè)試圖像
  img=color.rgb2gray(data.horse())
  #檢測(cè)所有圖形的輪廓
  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、逼近多邊形曲線


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


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


  函數(shù)格式為:


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


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


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


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


  返回細(xì)分為的坐標(biāo)點(diǎn)序列。


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


  函數(shù)格式為:


  skimage.measure.approximate_polygon(coords,tolerance)


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


  tolerance:容忍值


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


  例:


  importnumpyasnp
  importmatplotlib.pyplotasplt
  fromskimageimportmeasure,data,color
  #生成二值測(cè)試圖像
  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]])
  #檢測(cè)所有圖形的輪廓
  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ī)?lái)幫助。

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

    Rocko 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<