国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python數(shù)字圖像處理之骨架提取與分水嶺算法

2020-02-22 23:52:48
字體:
來源:轉載
供稿:網(wǎng)友

骨架提取與分水嶺算法也屬于形態(tài)學處理范疇,都放在morphology子模塊內。

1、骨架提取

骨架提取,也叫二值圖像細化。這種算法能將一個連通區(qū)域細化成一個像素的寬度,用于特征提取和目標拓撲表示。

morphology子模塊提供了兩個函數(shù)用于骨架提取,分別是Skeletonize()函數(shù)和medial_axis()函數(shù)。我們先來看Skeletonize()函數(shù)。

格式為:skimage.morphology.skeletonize(image)

輸入和輸出都是一幅二值圖像。

例1:

from skimage import morphology,drawimport numpy as npimport matplotlib.pyplot as plt#創(chuàng)建一個二值圖像用于測試image = np.zeros((400, 400))#生成目標對象1(白色U型)image[10:-10, 10:100] = 1image[-100:-10, 10:-10] = 1image[10:-10, -100:-10] = 1#生成目標對象2(X型)rs, cs = draw.line(250, 150, 10, 280)for i in range(10): image[rs + i, cs] = 1rs, cs = draw.line(10, 150, 250, 280)for i in range(20): image[rs + i, cs] = 1#生成目標對象3(O型)ir, ic = np.indices(image.shape)circle1 = (ic - 135)**2 + (ir - 150)**2 < 30**2circle2 = (ic - 135)**2 + (ir - 150)**2 < 20**2image[circle1] = 1image[circle2] = 0#實施骨架算法skeleton =morphology.skeletonize(image)#顯示結果fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(8, 4))ax1.imshow(image, cmap=plt.cm.gray)ax1.axis('off')ax1.set_title('original', fontsize=20)ax2.imshow(skeleton, cmap=plt.cm.gray)ax2.axis('off')ax2.set_title('skeleton', fontsize=20)fig.tight_layout()plt.show()

生成一幅測試圖像,上面有三個目標對象,分別進行骨架提取,結果如下:

例2:利用系統(tǒng)自帶的馬圖片進行骨架提取

from skimage import morphology,data,colorimport matplotlib.pyplot as pltimage=color.rgb2gray(data.horse())image=1-image #反相#實施骨架算法skeleton =morphology.skeletonize(image)#顯示結果fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(8, 4))ax1.imshow(image, cmap=plt.cm.gray)ax1.axis('off')ax1.set_title('original', fontsize=20)ax2.imshow(skeleton, cmap=plt.cm.gray)ax2.axis('off')ax2.set_title('skeleton', fontsize=20)fig.tight_layout()plt.show()

medial_axis就是中軸的意思,利用中軸變換方法計算前景(1值)目標對象的寬度,格式為:

skimage.morphology.medial_axis(image,mask=None,return_distance=False)

mask: 掩模。默認為None, 如果給定一個掩模,則在掩模內的像素值才執(zhí)行骨架算法。

return_distance: bool型值,默認為False. 如果為True, 則除了返回骨架,還將距離變換值也同時返回。這里的距離指的是中軸線上的所有點與背景點的距離。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 玉龙| 桦甸市| 定远县| 东丰县| 娄底市| 广饶县| 博野县| 崇州市| 郎溪县| 彝良县| 巧家县| 静宁县| 张掖市| 都江堰市| 江孜县| 始兴县| 宁明县| 淳化县| 罗定市| 汉中市| 静宁县| 渝北区| 兴义市| 桑日县| 徐汇区| 千阳县| 安阳县| 昭苏县| 广州市| 盐津县| 宜川县| 奉新县| 兴仁县| 雅江县| 马边| 扶沟县| 类乌齐县| 满洲里市| 永年县| 蛟河市| 龙口市|