【问题标题】:Color edge detection + opencv颜色边缘检测+opencv
【发布时间】:2011-11-11 09:36:56
【问题描述】:

在精明的边缘检测器中,所需的输入是灰度图像...

open-cv 中是否有任何直接的颜色边缘检测功能?或者如果我转换为灰度并使用 canny 是否相同?

我问这个是因为我需要查看彩色图像的边缘检测图以进行进一步处理...也就是说我需要计算彩色图像中的所有水平和垂直线段...因此我在想首先计算图像的所有边缘...

谁能帮助我如何进步...

【问题讨论】:

    标签: image-processing opencv emgucv


    【解决方案1】:

    Matthias Odisio 是正确的,感谢您甚至纠正了我,并且您已经很好地解释了原因。那么解决方案就是对每个色谱进行边缘检测:

     Image<Bgr, Byte> img  = new Image<Bgr, Byte>(open.FileName);
     Image<Bgr, Byte> Result = new Image<Bgr, Byte>(img.Size);
     Result[0] = img[0].Canny(new Gray(10), new Gray(60));
     Result[1] = img[0].Canny(new Gray(10), new Gray(60));
     Result[2] = img[0].Canny(new Gray(10), new Gray(60));
    

    希望这会有所帮助,

    克里斯

    【讨论】:

    • 我会在细化之前分别对所有 3 个颜色通道进行边缘检测:检测边缘,对所有通道执行 MAX 操作以获得尽可能多的边缘,然后才执行细化和滞后。跨度>
    • 嗨,是的,这是一个更好的方法,但需要重写 canny 方法以支持它。不幸的是,opencv canny 边缘检测方法仅支持灰度图像,并且会自动执行细化和滞后阈值处理。如果我记得玩过opencv代码应该很容易适应它,但恐怕我没有时间测试和提交修订。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多