gpt4 book ai didi

python - 适应不同闪电条件的 OpenCV 阈值

转载 作者:行者123 更新时间:2023-12-02 16:08:39 27 4
gpt4 key购买 nike

对于学校项目,我试图用 Python 编写一个程序来跟踪学生的运动。为了做到这一点,我正在使用 OpenCV。
在互联网上查找了一些教程后,我注意到几乎每个人都使用阈值来实现这一点,因为几乎每一步都需要二进制图像(例如 HoughCircle Transofrmation、Contours)。然而,根据我的理解,阈值对光非常敏感,因此这种方法只会在最佳闪电条件下返回良好的结果。
所以我的问题来了:除了对图像进行阈值处理之外,还有其他替代方法或更好的方法吗?或者我对 OpenCV 中阈值的理解首先是错误的?

这是一个示例图像:

example image

最佳答案

阈值化的目的是从背景中分割出所需的对象,然后您可以在其中执行额外的处理(应用形态学操作),然后执行轮廓过滤以进一步隔离所需的对象。而不是在范围为 [0...255] 的 BGR(3 channel )图像或灰度(1 channel )图像上应用图像处理技术。 ,阈值允许我们获得一个二值图像,其中每个像素都是 01这使得区分对象更容易。根据你的情况,有很多方法可以获得二值图像,这里有几种方法:

  • cv2.Canny - Canny 边缘检测,使用 minVal 和 maxVal 来确定边缘
  • cv2.threshold - 用户选择任意全局阈值的简单阈值
  • cv2.threshold + cv2.THRESH_OTSU - 大津的阈值自动计算阈值。
  • cv2.adaptiveThreshold - 自适应阈值处理,其中图像在不同区域具有不同的照明条件。本质上,它会自动计算图像不同区域的阈值,并在不同照度的图像上提供更好的结果
  • cv2.inRange - 颜色分割。这个想法是使用下限和上限阈值范围来获得二值图像。尝试隔离单个颜色范围时很有用
  • 关于python - 适应不同闪电条件的 OpenCV 阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60110313/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com