【问题标题】:Edge Detection, Matlab Vision System Toolbox边缘检测,Matlab 视觉系统工具箱
【发布时间】:2013-08-15 14:47:49
【问题描述】:

我有几张图像需要找到边缘。我试过在 matlab 中关注 vision.EdgeDetector System 对象,他们在这里给出的例子:http://www.mathworks.com/help/vision/ref/vision.edgedetectorclass.html

他们举了例子

    hedge = vision.EdgeDetector;
    hcsc = vision.ColorSpaceConverter('Conversion','RBG to intensity')
    hidtypeconv = vision.ImageDataTypeConverter('OutputDataType',single');
    img = step(hcsc, imread('picture.png'))
    img1 = step(hidtypeconv, ing);
    edge = step(hedge,img1);
    imshow(edges);

我在我的代码中完全遵循了这一点。

然而,这段代码并没有产生我想要的所有边缘,似乎 Matlab 只能拾取整个图像中大约一半的边缘。有没有一种不同的方法可以找到所有的边缘,或者有一种方法可以改进 Matlab 中的 vision.EdgeDetector 对象?

【问题讨论】:

    标签: computer-vision matlab-cvst edge-detection


    【解决方案1】:

    默认情况下,hedge = vision.EdgeDetector 的阈值为 20。尝试将其更改为对冲 = vision.EdgeDetector('Threshold',Value) 并使用价值,看看哪种价值最适合您。

    【讨论】:

      【解决方案2】:

      试试:

      imgGray = rgb2gray(imgRGB);
      imgEdge = edge(imgGray,'canny');
      

      这应该会给你大部分的边缘点,如果没有,那么相应地更改参数 THRESH 和 SIGMA。另请检查以下其他方法:

      help edge
      

      您不必使用 vision.EdgeDetector 系统,没有它们会更容易! ;)

      【讨论】:

        猜你喜欢
        • 2011-09-13
        • 2014-07-02
        • 2015-01-30
        • 1970-01-01
        • 1970-01-01
        • 2019-01-19
        • 2013-12-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多