opencv相关内容

OpenCV ORB 检测器发现的关键点很少

我正在尝试使用 ORB 关键点检测器,它返回的点似乎比 SIFT 检测器和 FAST 检测器少得多. 此图显示了 ORB 检测器发现的关键点: 这张图显示了 SIFT 检测阶段发现的关键点(FAST 返回的点数相似). 只有这么少的点会导致跨图像的特征匹配结果非常差.我现在只是对 ORB 的检测阶段感到好奇,因为这似乎我得到了不正确的结果.我已经尝试使用 ORB 检测器和默认参数 ..
发布时间:2022-01-09 18:43:42 Python

相机捕获图像的形状检测(圆形、正方形、矩形、三角形、椭圆) + i OS 5 + Open CV

我是 OpenCV 的新手,需要了解 OpenCV 的方法,它可以在 iPhone 的相机捕获图像中检测不同的形状(圆形、正方形、矩形、三角形、椭圆形). 那么,有人可以指导我正确的方向(参考/文章/任何东西)哪些技术更好地完成它. 谢谢.. 小米 解决方案 首先您可能需要查看边缘检测器,例如 Canny 将形状提取到二进制图像中.(虽然这对 iPhone 来说可能很贵) ..
发布时间:2022-01-09 18:43:25 其他开发

使用 RANSAC 和 OpenCV 将一组点拟合到图像中一条或多条好线的最佳方法是什么?

使用 RANSAC 和 OpenCV 将一组点拟合到图像中一条或多条好线的最佳方法是什么? RANSAC 是拟合线的最有效方法吗? 解决方案 RANSAC 不是最有效的,但它对于大量异常值更好.以下是使用 opencv 的方法: 一个有用的结构- 结构 SLine{线():numOfValidPoints(0),参数(-1.f,-1.f,-1.f,-1.f){}cv::Vec ..
发布时间:2022-01-09 18:43:11 其他开发

2D 坐标到 3D 世界坐标

我想将 2D 图像坐标转换为 3D 世界坐标.我正在使用 ZED 相机,它是一个立体相机,它附带的 sdk 提供了视差图.因此我有深度.两个摄像头相互平行.虽然这个问题是微不足道的,但我无法弄清楚转换背后的数学.我有以下信息 1) 我有像素信息(即由 u 和 v 表示的行号和列号)以及该像素处的深度 D(以米为单位). 2)我也知道两个相机的焦距和cx,cy值 3) 投影B(基线 ..
发布时间:2022-01-09 18:42:56 其他开发

3D相机坐标到世界坐标(改变基础?)

假设我有一个对象相对于相机的坐标 X、Y、Z 和方向 Rx、Ry、Rz.另外,我还有这个相机在世界上的坐标U、V、W和方向Ru、Rv、Rw. 如何将对象的位置(位置和旋转)转换为其在世界中的位置? 对我来说这听起来像是基础的改变,但我还没有找到明确的来源. 解决方案 我发现这个文档对这个主题很清楚.http://www.cse.psu.edu/~rcollins/CSE486/ ..

如何检测不同光照条件下的颜色

我有一堆不同颜色的衣服图像,我想检测每个图像的颜色.假设我在日光条件下有一张蓝色裙子图像,我可以通过 RGB 分布获得正确的颜色.然而,在晚上很难分辨颜色,“蓝色"被识别为“黑色".很难制定一个统一的标准来通过 RGB 分布来指定颜色. 因此,我想知道是否有一种方法或算法可以检测不同照明下的颜色? 顺便说一句:我也尝试了 HSV 色彩空间,结果并不好. 解决方案 这是一个非常困 ..
发布时间:2022-01-09 18:42:32 其他开发

视野如何改变立体视觉中的深度估计?

我正在尝试从带有两个摄像头的立体系统估计深度.我使用的简单等式是: 基线*焦点深度 = ----------------------差距 两个摄像头的视野不会改变允许的最大深度?它只改变可测量的最小深度? 解决方案 在顶端,可测量的深度受到您使用的相机分辨率的限制,这反映在视差中.随着深度变得更大,差异趋于零.有了更大的视野,它在较低的深度将有效地为零.因此,更大的视野会降低可测量的 ..
发布时间:2022-01-09 18:42:24 其他开发

使用 OpenCV 检测一个图像中的对象是否在另一个图像中

我有一个包含对象的示例图像,例如下图中的耳环: http://imgur.com/luj2Z 然后我有一大组候选图像,我需要确定哪一个最有可能包含对象,例如: http://imgur.com/yBWgc 所以我需要为每个图像生成一个分数,其中最高分数对应于最有可能包含目标对象的图像.现在,在这种情况下,我有以下条件/约束可以使用/解决: 1) 我可以获取多个不同角度 ..
发布时间:2022-01-09 18:42:15 C#/.NET

在 OpenCV 中训练 SIFT 特征

我创建了一个小型 SIFT 应用程序,它可以抓取关键点并将其保存到文本文件中.我正在使用它从徽标(例如 AT&T)中获取信息,并使用它与具有该徽标的其他图像进行比较.问题是我的许多图像都有不同的徽标,由于缩放、旋转或照明,它无法识别它.我想知道是否有可能获得一组图像,抓住它的关键点,然后通过某种训练算法运行它以增强检测. 我在网上搜索了训练 SIFT 关键点的方法,但它们都在某种 phd 论 ..

匹配模板图像(缩放)到主/更大的图像

我想在主图像中查找/检查子图像/模板图像并想知道它的坐标, 我已经使用下面链接中给出的代码来实现它, 检查 iOS 中图像中是否存在子图像 如果模板图像的大小与较大图像的匹配部分的大小完全相同,则可以正常工作. 但是,如果子图像被缩小或放大而不是匹配较大图像的一部分,则无法正确给出结果. 解决方案 使用 OpenCV 特征检测.它比模板匹配更准确.. 请尝试使 ..

OpenCV中基于已知相机方向的透视变形

我正在开展一个项目,该项目试图根据相机的已知方向从图像中消除透视失真.我的想法是,我可以根据相机的已知 X、Y 和 Z 方向创建一个旋转矩阵.然后我可以通过 WarpPerspective 方法将这些矩阵应用于图像. 在我的脚本(用 Python 编写)中,我创建了三个旋转矩阵,每个矩阵都基于一个方向角.我已经到了一个我被困在两个问题上的地步.首先,当我将每个单独的矩阵加载到 WarpPer ..
发布时间:2022-01-09 18:41:27 Python

如何使用 Python OpenCV 将灰度图像转换为热图图像

我有一个 (540, 960, 1) 形状的图像,其值范围为黑白的 [0..255].我需要将其转换为“热图"表示.例如,具有 255 的像素应该是最热的,而具有 0 的像素应该是最不热的.其他介于两者之间.我还需要将热图作为 Numpy 数组返回,以便稍后将它们合并到视频中.有没有办法做到这一点? 解决方案 这里有两种方法,一种使用Matplotlib,一种只使用OpenCV 方法 ..
发布时间:2022-01-09 18:41:04 Python

如何在滑动窗口对象检测中对真阴性进行分类?

我正在收集图像检测器算法的结果.所以基本上我所做的是,从一组图像(大小为 320 x 480)中,我会通过它运行一个 64x128 的滑动窗口,并在一些预定义的比例下运行. 我明白: True Positives = 当我检测到的窗口与真实情况(带注释的边界框)重叠(在定义的交叉点大小/质心内)时 误报 = 当算法给我正窗口时,这超出了事实. False Negatives = 当 ..

OpenCV中矩阵中的元素总和?

我需要对矩阵中的所有元素求和.我使用了函数 sum(sum(A)); 在matlab中.其中 A 是一个大小为 300*360 的矩阵.我想在 OpenCV 中实现相同的功能.我用过这样的东西. double s=cv::sum(cv::sum(A)); 但显示无法将标量转换为双精度的错误.如何解决这个问题? 解决方案 与 Matlab 不同,在 opencv 中,cv::su ..
发布时间:2022-01-09 18:39:57 C/C++开发

查找 cv::Mat 的最大值

我正在尝试查找 cv::Mat 的最大像素值. 问题:*maxValue 总是返回 0. 来自 这个 S.O.线程,我知道 'max_element 返回迭代器,而不是值.这就是我使用 *maxValue' 的原因 cv::Mat imageMatrix;双 sigmaX = 0.0;int ddepth = CV_16S;//ddepth – 目标图像的所需深度cv::Gauss ..
发布时间:2022-01-09 18:39:51 C/C++开发

梯度大小的单位和界限是什么?

图像梯度幅度的单位和限制是什么?例如,我知道如何获得图像的梯度幅度(见下文).生成的 Mat 将包含我的源图像中每个边缘的边缘强度(大小). 但是“边缘强度/大小"的单位是什么?梯度方向以度/弧度为单位,幅度的单位是什么?OpenCV 中 Magnitude 的限制是什么?它是 0 到 1,即边缘的强度/大小介于 0 到 1 之间,其中 1 是完全垂直的? 因此,如果我要在直方图中绘制 ..
发布时间:2022-01-09 18:39:40 C/C++开发

基本矩阵的投影矩阵

我已经获得了两个相机之间的基本矩阵.我也将它们的内部参数放在我之前通过棋盘获得的 3 X 3 矩阵中.使用基本矩阵,我得到了 P1 和 P2 by P1 = [我 |0] 和 P2 = [ [e']x * F |e'] 这些投影矩阵在获取准确的 3D 位置方面并没有真正的用处.因为,我有内部参数 K1 和 K2,我将 P1 和 P2 更改为 P1 = K1 * [I |0] 和 ..
发布时间:2022-01-09 18:39:34 其他开发

Python OpenCV HoughLinesP 无法检测线

我正在使用 OpenCV HoughlinesP 来查找水平线和垂直线.它大部分时间都没有找到任何线路.即使它找到一条线,它甚至与实际图像都不接近. 导入 cv2将 numpy 导入为 npimg = cv2.imread('image_with_edges.jpg')灰色 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)标志,b = cv2.threshold(灰色 ..
发布时间:2022-01-09 18:39:25 Python