【发布时间】:2021-11-12 23:38:57
【问题描述】:
我目前正在做一个项目。我必须分离我得到的图像的元素。在第一张图像上,您可以看到其中一个的直方图。我想计算阈值,但我找不到一种计算阈值的方法,该方法允许我的阈值在 135 左右(这是或多或少完美的阈值,但我不想使用固定的临界点)。这个直方图是在绿色通道上制作的,因为它更容易识别上面的颜色(欢迎任何其他想法)。第二个图像是接收图像的示例。
提前谢谢你
【问题讨论】:
-
所以你需要从粉红色区域中分割出苍白的区域?
-
我认为这将受益于屏蔽操作。选择所有不是黑色的像素,将它们粘贴在一个数组(行或列向量)中。为此使用 numpy。然后对其运行一些自动阈值(otsu?)...以获得 threshold 值,然后将其应用于另一个(固定)阈值中的 original 图像。
-
@ChristophRackwitz 我该怎么做?数组中的默认值为 0,所以即使我复制我仍然会有黑色的一面。你能告诉我怎么做吗?
-
草图:
mask = (im != 0).any(axis=2); selection = im[mask]; (the_threshold, _) = cv.threshold(selection, ...); thresholded = cv.threshold(im, the_threshold, ...) -
@cedrik24 你是怎么做到的?
标签: python image opencv image-processing threshold