我正在尝试使用 skimage 的 threshold_otsu 将图像重新分类为二进制图像。
理论上,我正在重新分类的图像的值应该为 0,表示没有出现现象,值 != 0,表示出现了现象(不同程度)。 ArcGIS pro 程序就是这种情况,它允许我单击支持该理论的图像中的像素。但是,当我将图像导入我的 python 脚本时,我得到以下像素值直方图:
这几乎看起来是正确的,除了大量接近零的像素箱和接近 1600 的计数。这并不代表我从 ArcGIS 导出的图像,因为该图像中的绝大多数像素值完全等于零,仅此而已.
另一个暗示不对的提示是,创建二值图像的阈值(应该将图像像素值分成两个有意义的组的值)是 6.640625e+35 虽然实际上我还没有将直方图设置为包含该值,但这是没有意义的,因为这些值代表以米为单位的水槽深度,而 ArcGIS 图像中没有这样的值。
这是产生这些结果的代码:
## import image
image = cv2.imread("tif_folder/Clip_depth_sink.tif", -1)
scale = 0.3 #each pixel is 0.3 meters in x and y dims
#set threshold for creating binary
threshold = threshold_otsu(image)
thresholded_img = image > threshold
print(threshold)
#plot hist
plt.hist(image, bins=7, range=(0,1))
如果我可以提供额外的信息或实际的 tif 文件(我实际上不知道如何以其全尺寸制作),请告诉我。
谢谢!