Questions tagged «opencv»

OpenCV(开源计算机视觉)是用于实时计算机视觉的编程功能的跨平台库。

3
检测填充的玻璃物体
我是从stackoverflow中的这个问题发送来的,请问如果问题太具体而又不是这里的方式:) 任务是找到其中装有特定液体的玻璃。让我为您展示图片,然后在图片下方的描述中描述我正在尝试实现的目标以及到目前为止我如何尝试实现的目标。 图片:(似乎我至少需要10名信誉才能发布图片和链接,因此链接必须要做:(否则,您可以查看堆栈溢出问题) 详细说明:我正在尝试实现一种算法,该算法将在opencv中检测特定形状的玻璃(玻璃可能会因不同的镜头拍摄角度/距离而发生变形)。也将有其他形状的其他眼镜。我要搜索的玻璃杯中还将填充一些有色液体,这将使其与包含其他颜色的玻璃杯区分开。 到目前为止,我已经尝试使用SIFT特征提取器尝试在玻璃中找到某些特征,然后将它们与装有玻璃的其他照片进行匹配。 这种方法仅在非常特殊的条件下才有效,在这种情况下,我会将玻璃放置在非常特定的位置,并且背景类似于学习图像。问题还在于,玻璃是3D对象,我不知道如何从中提取特征(也许是多张照片以不同的方式链接在一起?)。 现在我不知道我还能使用什么其他方法。我已经找到了一些线索(在这里/programming/10168686/algorithm-improvement-for-coca-cola-can-shape-recognition#answer-10219338),但链接似乎已断开。 另一个问题是在这种玻璃杯中检测不同的“空度”,但我什至无法正确找到玻璃杯本身。 您对本任务中的方法有何建议?使用其他方式查找本地3d对象特征会更好吗?还是完全使用其他方法会更好?我听说过算法从一组多张照片中“学习”对象,但实际上我从未见过。 任何建议将不胜感激



1
视频中的车辆计数
免责声明:我在StackOverFlow上发布了此问题,但了解到它更适合此处。 我对图像处理有点陌生,所以我想问您有关为我的问题找到最佳解决方案的方法,而对代码没有帮助。我还没有想到一个好主意,所以想问一下您的建议。 我正在使用OpenCV进行一个项目,该项目用于从视频文件或实时摄像机中计算车辆的数量。从事此类项目的其他人通常会跟踪移动的物体,然后对其进行计数,但与此相反,我想使用不同的观点;要求用户在视频窗口上设置一个ROI(感兴趣的区域),并且仅在该区域内工作(由于某些原因,比如不处理整个帧并提高性能),如下所示。(用户可以设置一个以上的ROI,并要求用户通过比例感来设置ROI的高度大约是普通汽车的两倍。) 到目前为止,我已经取得了一些基本进展,例如背景更新,形态过滤器,阈值化以及将移动对象作为二进制图像获取,如下所示。 完成这些操作后,我尝试对最终的阈值前景帧中的白色像素进行计数,并通过检查总的白色像素数量来估计它是否是汽车(我通过了解ROI的高度通过静态计算设置了下限) 。为了说明,我画了一个示例图形: 如您所见,很容易计算出白色像素并检查它是否按时间绘制曲线并确定是汽车还是类似噪音的东西。 问题 在两辆汽车同时通过我的投资回报率之前,我一直非常成功。我的算法错误地将其视为一辆汽车。我针对此问题尝试了不同的方法,类似于长车,但没有找到令人满意的解决方案。 题 是否可以通过这种像素值计数方法来处理此任务?如果没有,您有什么建议?

1
OpenCV calcHist和calcBackProject用简单的英语
我已经开始尝试使用c ++和opencv,因为我想学习图像处理。 现在,我的第一个练习是使用calcHist和calcBackProject创建皮肤检测器。 但是我不明白几件事: 后台项目的统计解释,以及为什么将其命名为“后台项目” 我对什么是range参数有很好的理解calcBackProject。但是我真的很迷恋calcHist函数中的range参数。 为了获得更高的检测精度,我认为在更多级别上使用反向注入可能是一件好事:在hsv的每个通道的rgb ans的每个通道中。但是我不知道如何结合calcBackProjectrgb和hsv的单独通道的不同结果。 而且我认为我的理解力不佳是由于我对这两种方法所做的理论缺乏(见第一点)引起的。所以请用简单的英语解释一下。

2
基于对数极化DFT的尺度不变图像配准
我正在尝试使用Reddy Chatterji论文中所述的相位相关进行图像配准。就我而言,图像可以相对于彼此缩放和转换。 据我了解,找到相对比例的算法是(请参阅:论文的流程图): F1 = DFT(I1) F2 = DFT(I2) H1 = Highpass(F1) H2 = Highpass(F2) L1 = LogPolar(Magnitude(H1)) L2 = LogPolar(Magnitude(H2)) PC = PhaseCorrelate(L1,L2) PM = norm(PC) R = IDFT(PhaseCorr/PM) P = Peak(R) Scale = LogBase^P[1] 比例给了我看似荒谬的价值(图像之间存在极大的差异,并且永远无法纠正)。 但是忽略规模,相同的相位相关方法可以很好地进行翻译。所以我怀疑我的对数极坐标变换有问题。这是一个示例,其中我已解决翻译问题-左图是原始图像,右图已被裁剪和翻译-该解决方案显示在原始图的顶部: 为对数极坐标变换,我第一变换成极空间 一世^(ρ ,θ )= I( - [R + ρ COS(2 πθñθ),[R-ρ罪(2 πθñθ))一世^(ρ,θ)=一世([R+ρcos⁡(2πθñθ),[R-ρ罪⁡(2πθñθ)) …



2
如何估算位于Harris角的视觉特征的八度和大小
我目前正在使用OpenCV作为视觉特征匹配基础的几种特征检测器,并对其性能进行比较。 我正在使用SIFT描述符。在检测MSER和DoG(SIFT)功能时,我已经完成了令人满意的匹配(拒绝了不匹配的匹配之后)。 目前,我正在使用GFTT(要跟踪的良好功能-Harris角)测试我的代码以进行比较,并且因为在最后的应用中,视觉功能跟踪过程中将提供一组GFTT功能。 我使用cv::FeatureDetector::detect(...)它为我提供了一个std::vector<cv::KeyPoint>充满了兴趣检测的特征/关键点/地区。该结构cv::KeyPoint包含有关要素的位置有关的基本信息,以及信息size,并octave在关键点已经被检测到。 在比较不同类型的特征的典型值和参数之前,我对GFTT的最初结果很糟糕:sizeoctave MSER设置大小(10到40px之间),并将八度保留为0 DoG(SIFT)设置大小和八度(大小/八度比在20到40之间) GFTT参数始终为:size = 3,octave = 0 我认为这是因为GFTT功能的主要目的不是用于匹配,而只是用于跟踪。这解释了匹配结果的低质量,因为从如此微小的特征中提取的描述符不再具有歧视性,并且对于许多事物(包括小的1像素偏移)不变。 如果我手动设置size的GFTT至10 - 12,我得到了良好的效果,非常类似于使用时MSER或DOG(SIFT) 。 我的问题是:有没有比10见才能确定增加size(和/或octave)多少更好的方法呢?我想避免对可能的增加进行硬编码,并以编程方式确定它,但是只要我有一些可靠的论据来支持对新的/ 增加 / 估计算法的选择,就可以进行硬编码。sizesizesizesize
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.