skimage 使用 threshold_otsu 重新分类

问题描述 投票:0回答:0

我正在尝试使用 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 文件(我实际上不知道如何以其全尺寸制作),请告诉我。

谢谢!

python image-segmentation scikit-image
© www.soinside.com 2019 - 2024. All rights reserved.