我試圖弄清楚如何在直方圖強度上對RGB.png文件進行二值化處理。ImageProcessing具有多個閾值來對skimage.io的imread進行二值化處理()
Example: smoothed RGB intensities with estimated thresholds for R,G,B
到目前爲止是這種情況,我可以申請閾值的一個強度範圍與<和>使用下面的代碼操作:(另外,如果我想知道爲什麼它不IMG < thres1爲階段1 ..)
from skimage.io import imread
img=imread('example.png')
#intensitys
thres1 = 30
thres2 = 80
#calculate
phase1 = img > thres1
phase3 = img < thres2
現在我試圖讓剛強度thres1和thres2幾個之間的方法具像素DS例如爲:
phase2 = thres1 < img < thres2
#also
phase2 = thres1<img & img < thres2
#and
phase2 = thres1<img
phase2 = thres2>phase2
雖然這種操作它使我有以下ValueError異常: 具有多於一個元素的數組的真值是不明確的。使用a.any()或a.all() 我也嘗試用a.any()和a.all()來處理這種情況,因此我沒有得到有用的結果。
使用phase2 = np.logical_and(thres1 < img,img < thres2)
錯誤地將階段3包括到階段2中;
phase2 = np.logical_and(thres1 < img,img > thres2)
錯誤地將階段1包括到階段2中。
Example: plot of generated image arrays for phase2 = np.logical_and(thres1 < img,img > thres2)
有用來創建圖片,不止一個閾值參數來完成通過繪製兩個強度值之間的所有像素的可能性大嗎?
你可以添加一個最小的示例,例如形狀爲((4,5,3)')的圖像數組,並向我們顯示所需的輸出? – Divakar
'phase2 = np.logical_and(thres1
得到它; 'phase2 =〜(np.logical_and(phase1,phase3))'感謝您的幫助! –