【发布时间】:2020-06-26 23:26:17
【问题描述】:
bw_image = sk_col.rgb2gray(image)
fig = plt.figure(figsize=(3,3))
plt.imshow(bw_image, cmap="gray")
plt.show()
mean_val = threshold_mean(bw_image)
print('*****',mean_val,'******')
binary_image = bw_image > mean_val
fig = plt.figure(figsize=(3,3))
plt.imshow(binary_image, cmap="gray")
plt.title("Mean Threshold: " + str(mean_val))
plt.show()
问题是为什么我的平均值是 0.386 。我不应该得到 0-255 左右的值吗? skimage.color.rgb2gray 函数应返回像素范围为 0-255 的图像。但是当我打印像素时,我看到了 0 到 1 之间的值。
对于这种混乱,我无法理解如何找到二进制图像。检查了 skimage.color 的文档,但没有发现任何帮助。
【问题讨论】:
-
原来答案非常简单。 rgb2gray 方法返回归一化后的值。找到答案非常耗时,因为文档中没有提到它,而且我也没有在 stackoverflow 中找到答案。现在我应该留下问题还是删除它?
-
如果您认为它对未来的访问者有用,请发布您的问题的答案。
-
@AshrafulAlamImran 谢谢你的提问。文档中有一个页面确实解释了这一点,但可能并不像应有的那么容易发现:scikit-image.org/docs/dev/user_guide/data_types.html 在未来,我们确实希望改善这种行为,请参阅github.com/scikit-image/scikit-image/issues/3009 和 mail.python.org/archives/list/scikit-image@python.org/thread/…
标签: machine-learning image-processing scikit-image