gpt4 book ai didi

python - 有关(精明)边缘检测的一般问题

转载 作者:行者123 更新时间:2023-12-01 07:23:02 25 4
gpt4 key购买 nike

我面临一些有关图像边缘检测的一般问题(该图像应该与我的问题无关)。

  1. 我希望 canny 边缘检测器忽略某个像素值。例如:如果灰度值不为0,它应该只寻找边缘。否则将检测到“假边缘”。

    我通常使用 cv2.canny 函数,它运行得非常快而且效果很好。问题是,它不可定制。因此,我采用了自定义 Canny 边缘检测器 ( https://rosettacode.org/wiki/Canny_edge_detector#Python ) 的代码来对其进行自定义。它可以工作,但计算边缘的速度太慢(需要几分钟,而 cv2.canny 函数只需要几分之一秒)。这是我的第一个问题。

    是否有另一种方法可以使 cv2.canny 函数“忽略”特定值的像素。想象一下图片中的某个地方有一个充满黑色的区域(如下图所示)。我不希望边缘检测器检测到该黑色区域的边缘。

enter image description here

  • 一旦我在图像中检测到一些清晰的边缘,我想根据这些边缘创建蒙版。我在网上找不到任何这方面的例子。因此,如果有人知道在哪里可以找到有关如何从边缘创建蒙版的好教程,那么如果您能帮助我,那就太好了。
  • 提前致谢

    最佳答案

    这是一种方法:

    • 使用快速 OpenCV 函数照常计算 Canny。

    • 现在找到图像中的所有黑色像素 - 您可以使用 _,thr = cv2.threshold(im,1,255,cv2.THRESH_BINARY) 并将这些区域扩大 1具有形态的像素,允许边缘像平常一样稍微偏移。

    • 将正常的 Canny 图像与您创建的蒙版相乘,以便在黑色区域中找到的任何内容都会乘以零,即丢失。

    关于python - 有关(精明)边缘检测的一般问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57593926/

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