• 非監督式閥值是指有七種opencv提供的閥值規則,他會自主學習,自動找出閥值。
• 透過try_all_threshold( )查看自主學習閥值的成果。
• 我們可以透過圖表顯示影像灰階化後的色彩分布:
• 我們須將二維的灰階影像轉換為一維的資料
• image1.ravel( ) 代表將二維資料轉換為一維
• plt.hist(image1.ravel( ) )查看轉換為一維後的色彩分布
• 挑選兩種非監督式閥值的學習查看他的執行成果。
原圖
原始碼
- from skimage.io import imshow,imread,imsave
- import matplotlib.pyplot as plt
- import skimage.color as colors
- import skimage.filters as filters
- def image_show(image,nrows=1,ncols=1,cmap='gray'):
- fig,ax=plt.subplots(nrows=nrows,ncols=ncols,figsize=(6,6))
- ax.imshow(image,cmap='gray')
- print(image)
- ax.axis('off')
- plt.show()
- return fig,ax
- #image1=imread('cat.jpg',as_gray=True)
- image1=imread('threshold.png',as_gray=True)
- thresh1=filters.threshold_otsu(image1) #方法一
- #print(thresh1)
- data2=(image1>thresh1)
- #print(data2)
- image_show(data2)
- thresh1=filters.threshold_yen(image1) #方法二
- print(thresh1)
- data2=(image1>thresh1)
- image_show(data2)
複製代碼
thresh1代表閥值設定的比率。
當imge1>thresh1,也就是通過閥值的灰階色彩,就成為True,否則就是False
透過image_show( )呈現圖像
結果圖
|