阈值处理是将图像按照特定的一个值将图像分为1/0两个值。
mahotas使用两种方式,一种是传统的otsu方式,另外一种是Rildley-Calavard当时
import mahotas as mh
image=mh.imread('image/building05.jpg')
#image=image-image.mean()
from matplotlib import pyplot as plt
import numpy as np
image=mh.colors.rgb2gray(image,dtype=np.uint8)
plt.gray()
thresh=mh.thresholding.otsu(image)
plt.subplot(121)
plt.imshow(image>thresh)
plt.subplot(122)
thresh=mh.thresholding.rc(image)
plt.imshow(image>thresh)
plt.show()
原始图像
结果为:
针对当前图像,rc的效果要好。而实际上,很难区分到底哪种好或者坏。好坏是跟当前的图像相关的。
参考资料:
机器学习系统设计,P156-159