【问题标题】:searching Threshold Algorithm搜索阈值算法
【发布时间】: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


【解决方案1】:

选项 1:

  1. 首先我们要消除黑色,所以使用直方图我们得到从 0 到 50 的像素总数(例如)=DarkPixelsCount
  2. 然后我们开始从255开始计数像素并累加总数=LighPixelsCount
  3. 从 255 开始,我们将检查 if (LighPixelsCount >= (90% of (TotalPixelsCount - DarkPixelsCount)) 满足此条件时,这是一个很好的阈值点。

注意:我选择的固定数字是例如您可以尝试以获得最佳结果

选项 2:

  1. 使用具有非常高值的 Gamma 校正(例如 6.99)
  2. 然后选择一个高阈值(例如 213)

结果

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    相关资源
    最近更新 更多