问题标签 [edge-detection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1575 浏览

matlab - MATLAB:返回大矩阵中两个坐标之间的值数组(对角线)

如果我解释原因,这可能更有意义

我有一个逻辑矩阵 (103x3488) 输出的测量人员的照片已经通过边缘检测 (1=edge, 0=noedge)。旨在计算工作人员刻度之间的像素距离。问题,工作人员在中间下垂。

想法:用户输入五线谱每一端的坐标(使用ginput或其他东西)和凹陷的中点,然后如果这些点之间的边缘可以提取到数组中,我可以很容易地找到边缘的位置。

以这种方式从矩阵中提取数组的任何方法?

也欢迎其他想法,只使用matlab一个月,所以大多数功能我都不知道。

编辑:图片链接

它显示了矩阵的一小部分区域,因此在此示例中,1 和 2 是我想要在其间采样的点,我想返回沿红线出现的点。

干杯

0 投票
2 回答
17721 浏览

c# - 在 Emgu.CV 中,这些阈值是什么意思,是否有更好的方法来检测圆圈?

背景

这是我的 Emgu.CV 代码,用于获取图像并绘制其中找到的圆圈(主要来自 Emgu.CV.Examples 解决方案中的 ShapeDetection 项目的代码,该解决方案随 EmguCV 下载提供):

这是图像:

圆圈的图像

问题

  1. 好的,所以我知道阈值ThresholdBinary是多少。由于我从灰度图像中获取二进制图像,因此它是图片中灰度的强度。这是因为图片中灰度圆圈的强度为 150 到 185。我假设这与 的第一个参数相同HoughCircles

    我不知道的是 circleAccumulatorThreshold、累加器的分辨率和最小距离(第 2、第 3 和第 4 个参数到HoughCircles)是什么,或者应该有什么值。我显然没有正确的值,因为图片中的圆圈没有正确“houghed”。

  2. 我的第二个问题是,有没有更好的方法来找到圆圈?我需要能够在多种类型的光中检测到这个圆圈(即圆圈颜色强度可能很低,如 80 或更低)并在图片中获得它的尺寸。匹配圆圈的最佳方法是什么?我应该让圆圈变成另一种颜色并在原始图像中查找该颜色吗?还有其他想法吗?

谢谢

0 投票
3 回答
638 浏览

object - 图像对象检测问题

我即将开始一个不属于任何课程的大学项目。我的任务是识别任意图像上的对象(比如图像中的圆圈数)。我将主要使用 2D 图像。我对这种图像处理没有太多经验,想知道是否有人可以指导从哪里开始。

我最初的谷歌搜索给了我一些关键词,比如 OpenCV。我有一些关于信号和系统的课程(特别是傅立叶变换)、许多与计算机科学相关的课程(数据结构、算法等)、数学课程(微积分、线性代数等)等等。

有人可以给我一个关于寻找和学习什么样的东西的快速指南吗?任何形式的指导将不胜感激。谢谢!

0 投票
2 回答
3250 浏览

c# - 确定边缘检测处理图像的相似性

我希望我可以从 stackoverflow 社区获得一些指导,以解决我在高级项目中遇到的困境。首先,我想声明我是一个新手程序员,我相信你们中的一些人会很快告诉我这个项目超出了我的想象。我很快就意识到这可能是真的。

现在这已经不碍事了,让我给出一些定义:

项目目标: 该项目的目标,就像许多其他人在各种 SO 问题中寻求实现的一样(其中许多问题在此工作过程中对我非常有帮助),是检测停车位是否已满或可用,最终将此类情况报告给用户(最好是通过 iPhone 或 Droid 或其他易于使用的移动应用程序——由于时间限制,这方面很快被认为超出了我的工作范围)。

使用中的工具: 我大量使用了 AForge.Net 库的资源,它为我提供了将项目整合到一起的所有构建块,包括从 IP 摄像机捕获视频、对图像应用过滤器以及最终完成检测的目的。结果,你就会知道我选择用 C# 编程,主要是因为初学者易于使用。其他选项包括 MATLAB/C++、带有 OpenCV 的 C++ 和其他替代方案。

问题

这是我遇到问题的地方。下面链接了一张在 AForge 图像处理实验室中经过预处理的图像。使用的过滤器和过程的顺序是:灰度、直方图均衡、Sobel 边缘检测,最后是 Otsu Thresholding(尽管我不相信需要最后一步)。

http://i.stack.imgur.com/u6eqk.jpg

当然,您可以用肉眼从图像中看出,检测到的边缘序列显然是停在我用相机监控的空间中的汽车。这些汽车的轮廓清晰地由亮化的车轮图案、基本上代表侧窗外边缘的那种“双铁轨”图案,甚至在这种情况下的车牌轮廓线所定义。具体来说,在项目的延续中,选择的摄像机将是一个 PTZ,以覆盖尽可能多的街区,因此我只想关注汽车的侧面特征(消除车牌等因素) . 也可以考虑天窗的矩形等特征,但显然这不是汽车的普遍特征,而一般的窗户轮廓是。

我们都可以看到这些模式存在差异,当然会因汽车制造商和型号而异。但是,通常这个序列不仅可以成功检索所需的特征,还可以从视野中消除道路(重要的是,如果您要检测空白空间,我打算使用道路颜色作为“第一个试金石”......如果我检测到与道路数据一致的灰度级,特别是如果在一个区域中没有检测到边缘,我觉得我可以安全地假设一个空白空间)。我的问题是这样的,希望它足够通用,对网站上的其他人实际上有益:

重点问题:
有没有办法拍摄一个图像片段(通过裁剪),然后将检测到的边缘序列与来自相机的未来新帧进行比较?更具体地说,有没有办法做到这一点,同时允许余地/基本上为边缘的微小差异创建公差阈值?

关于这个问题的个人想法/头脑风暴
——我确信有一种方法可以逐个像素地比较——裁剪到边缘周围的矩形,然后将裁剪后的图像滑过新处理的帧以进行比较像素-逐像素,但除非您与检测到的边缘完全匹配,否则这将无济于事。

感谢所有帮助,我也很乐意根据需要进行澄清。

0 投票
2 回答
2299 浏览

image-processing - 1x2和1x3图像梯度核滤波器定义有什么区别

最近和同事讨论图像渐变操作。

通常,图像梯度定义为:

dI_dx(j,k) = I(j,k+1) - I(j,k) # x partial derivative of image

dI_dy(j,k) = I(j+1,k) - I(j,k) # y partial derivative of image

对于图像的 x 偏导数,这个操作可以用一个 1x2 的滤波器数组来表示:

[1 -1]

但还有另一个定义:

dI_dx(j,k) = I(j,k+1) - I(j,k-1)=> [1 0 -1](过滤器数组)

于是我的同事问:它们有什么区别,为什么后面的1x3滤镜比1x2滤镜更常用?

我们讨论了一些可能的原因:

  1. 1x3 采样比 1x2 更稳健

    我的同事:不,他们都为每个图像梯度像素采样 2 个像素,在这些过滤器中采样像素上出现噪声的概率是相同的。

  2. 1x3 比 1x2 更平滑

    我的同事:不,1x2 和 1x3 过滤器的定义根本没有平滑。Sobel 滤波器是由高斯平滑的...

扩展问题:图像梯度的空间滤波器内核是否有所谓的“窗口大小”?

顺便说一句,我和我的同事并没有被以下参考网页说服......

http://www.cis.rit.edu/people/faculty/rhody/EdgeDetection.htm

0 投票
2 回答
4864 浏览

opencv - 边缘检测后获取边缘坐标(Canny)

我使用 OpenCV 的时间很短,并且对图像执行了 Canny 边缘检测,之后还执行了膨胀以进一步将对象(在我的情况下为正方形)与背景分开。

我现在的问题是使用一种算法来识别 2D 中的可抓取区域,该算法需要我处理这些边缘中点的坐标。有什么方法可以使用 OpenCV 来获取角的坐标,这样我就可以找到形成正方形边缘的线的方程?我知道正方形的大小。我的问题涉及二维坐标几何,因此需要坐标。

如果需要,我可以提供边缘检测和膨胀后的图像。帮助将不胜感激。

0 投票
1 回答
19616 浏览

matlab - MATLAB 中的轮廓检测

我试图理解这段代码:

我知道这d是应用了图像和精明检测器,忽略了 40 个像素。图像是灰度的,轮廓被添加到图像中。

你能解释下几行吗?这里使用什么原理/算法?我遇到了麻烦,尤其是代码的轮廓检测部分。

0 投票
1 回答
1414 浏览

c# - 从图像 C# 中删除白边

我正在寻找一种方法来检测和裁剪我收到的扫描图像。图片是一种被扫描的表格,因此它还包含扫描封面的白色背景。

有什么建议我可以自动做到这一点吗?

0 投票
1 回答
2099 浏览

flash - ActionScript 人脸检测

当用户在网络摄像头前时,我正在寻找用户头部的边缘。我尝试谷歌搜索但无济于事。有人可以为我指出一些相同的ActionScript示例吗?

和平\m/

0 投票
2 回答
1208 浏览

opencv - 如何在openCV中选择边缘检测的阈值?

我的应用是检测硬币。我已经使用 OpenCv 完成了大部分工作。我正在使用 CannyDetection 和 houghTransform 来检测图像圆圈。

但是我没有得到正确的硬币圈,我认为 ThresoldValues 传递给 cannyEdgeDetector 可能有问题。谁能告诉我如何选择阈值来检测硬币圈。

谢谢你,斯里尼瓦斯