TShopping

標題: Python 非監督式閥值 thresh [打印本頁]

作者: woff    時間: 2021-5-18 22:30
標題: Python 非監督式閥值 thresh
• 非監督式閥值是指有七種opencv提供的閥值規則,他會自主學習,自動找出閥值。
• 透過try_all_threshold( )查看自主學習閥值的成果。
• 我們可以透過圖表顯示影像灰階化後的色彩分布:
• 我們須將二維的灰階影像轉換為一維的資料
• image1.ravel( ) 代表將二維資料轉換為一維
• plt.hist(image1.ravel( ) )查看轉換為一維後的色彩分布
• 挑選兩種非監督式閥值的學習查看他的執行成果。

原圖



原始碼
  1. from  skimage.io import  imshow,imread,imsave
  2. import  matplotlib.pyplot as plt
  3. import  skimage.color as colors
  4. import  skimage.filters as filters
  5. def image_show(image,nrows=1,ncols=1,cmap='gray'):
  6.     fig,ax=plt.subplots(nrows=nrows,ncols=ncols,figsize=(6,6))
  7.     ax.imshow(image,cmap='gray')
  8.     print(image)
  9.     ax.axis('off')
  10.     plt.show()
  11.     return  fig,ax
  12. #image1=imread('cat.jpg',as_gray=True)
  13. image1=imread('threshold.png',as_gray=True)
  14. thresh1=filters.threshold_otsu(image1) #方法一
  15. #print(thresh1)
  16. data2=(image1>thresh1)
  17. #print(data2)
  18. image_show(data2)
  19. thresh1=filters.threshold_yen(image1) #方法二
  20. print(thresh1)
  21. data2=(image1>thresh1)
  22. image_show(data2)
複製代碼


thresh1代表閥值設定的比率。


當imge1>thresh1,也就是通過閥值的灰階色彩,就成為True,否則就是False
透過image_show( )呈現圖像


結果圖






歡迎光臨 TShopping (http://www.tshopping.com.tw/) Powered by Discuz! X3.2