问题标签 [vision]
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.
algorithm - 对齐高度/深度图
我有 2 个相同维度 (256 x 256) 的 2D 深度/高度图。深度图图像的每个像素/单元都包含一个浮点值。有一些像素没有信息,因此当前设置为 nan。非纳米细胞的百分比可以从 ~ 20% 到 80% 不等。通过对底层公共表面进行点采样,获取相同区域的深度图。
这个想法是,图像代表了底层表面的部分但重叠的采样。我需要对齐这些图像以创建表面的组合采样表示。如果盲目完成,则组合图像会出现不连续性,尤其是在 z 维度(浮点值)中。
对齐两张图像的快速方法是什么?x 和 y 方向的平移应该最小,只有几个像素(~ 0 到 10 像素)。但是可能需要调整一张图像的浮点值以更好地对齐图像。因此,最小化两张图像之间的差异是目标。
Thnx 的任何建议。
algorithm - 使用局部视觉进行局部路径规划和避障
使用局部视觉系统进行局部路径规划或障碍物导航的最佳算法是什么?
我有一个 3D 环境中的机器人,它使用 8 个摄像头来查看环境。
相机为我提供了相机与其图像中任意像素之间的物理距离。
我也可以根据图像计算任意点的坐标。
我对环境中的任何事物都使用特定的颜色,因此我可以根据它们的颜色检测障碍物。
有一种称为 VisBug 的算法可以做到这一点,但我不喜欢使用它。它效率不高。
有没有合适的选择?谢谢。
matlab - 计算机视觉系统工具箱和 GUI
我正在使用 Matlab 中的计算机视觉系统工具箱同时从两个摄像头抓取图像,我想创建一个图形用户界面,其中包括从两个摄像头抓取到两个轴的图片。问题是我不知道如何在使用计算机视觉系统工具箱时创建带有轴的 GUI。您能帮我或提供一个 matlab 代码,用于使用计算机视觉系统工具箱创建 GUI 以实时从相机中获取图像。
亲切的问候
image - 训练和分类计算机视觉
在计算机视觉中训练数据(图像集)的含义是什么以及它是如何完成的?什么是分类器?
computer-vision - 难以理解极点与斧头的对齐方式
这个问题是在我阅读这篇论文时出现的。目标是估计两个摄像机C 1和C 2的相对姿态,给定五个点对应。
投影平面被视为单位球体,并且选择全局坐标系以使Z G轴连接相机中心。如果我们能找到两个矩阵R 1和R 2 ,问题就解决了,分别将C 1和C 2的内部坐标系映射到前面描述的全局系统(对我来说,听起来这些矩阵只会对齐Z c_1和具有全局Z G轴的摄像机的Z c_2轴)。
这些矩阵以迭代方式计算,并且在每次迭代中,所有点对应关系(v 1 ,v 2 )通过旋转更新,变为(R 1 v 1 ,R 2 v 2 )。
到目前为止,一切都说得通。但后来,作者指出,这些旋转改变了极点的方向(我假设相对于相机 Z 轴),并且“通过旋转单位球体使得 z 轴Z G与极点对齐,即Z G =R 1 e 1 =R 2 e 2旋转点对应(v 1 ,v 2 )与极点e 1 ,e 2 "共面。
对我来说,作为基线的Z G轴始终与核对齐,旋转的核Re不再是核,因为它远离基线。但是上面的引用暗示存在极点不对齐的配置...如您所见,我完全糊涂了...请帮助我理解作者的意思。
opencv - 视频中的箭头识别
我想创建一个程序,可以识别视频源中的箭头并确定它们指向的方向(左或右)。我的目标是将这个程序与 arduino 机器人一起使用,以确定机器人应该移动的方向。
我的问题是使用哪种方法。我已将选择范围缩小到模板匹配或 SURF。模板匹配很好,因为它与旋转无关,因此可以确定左右箭头。但是,由于机器人将移动,模板箭头的大小可能不等于视频源的大小,从而导致不匹配。
SURF 解决了这个问题,但它是旋转不变的。这意味着左箭头和右箭头将被视为同一事物。
谁能建议我可以用于该程序的方法。
提前感谢您的帮助
PS 我将使用 OpenCV 来实现。
image - 匹配openCV中最接近的图像?
这就是我遇到的困境。对于我的应用程序,我需要将图像L1与一组图像中匹配的L2进行匹配。L1和L2是完全相同的图像,除了L1小得多(它需要放大吗?),并且可能在边缘有一点伪影,但尽管如此,它们来自完全相同的源图像。颜色确实很重要,因为使用颜色信息将消除当前图像与要匹配的图像之间可能存在的歧义。使用 OpenCV(或者可能有更好的选择?),找到匹配图像(L2)的最佳方法是什么。
重申一下,要匹配的图像无论如何都不会旋转或扭曲,只会调整大小。
我想会有一个函数来评估要匹配的图像与提供的集合中的所有图像的接近程度。然后我们选择评分最高的那个作为匹配。我不确定如何比较图像。任何帮助都会很棒。谢谢。
c# - WCF 服务和 COBOL 虚拟机
我们有一个当前正在运行的 WCF 服务和 COBOL VM 进行通信,以提供对来自 Vision 文件的数据的访问。该过程有效,但我们必须将 WCF 服务限制为[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single)]
. 它可以工作,但有时对用户来说似乎很慢,因为他们正在排队并且某些请求有时超过几秒钟。
COBOL VM 是一个单例,所以我不相信我可以将我的 COBOL 程序与多个 WCF 服务请求隔离开来,而不会使它们相互踩踏。COBOL 程序无法知道哪个客户端的调用是什么,它只是返回/操作数据。
我的想法是在 COBOL 中创建一个程序来管理我的请求,但我不确定如何将该信息返回到 WCF 服务,以便它响应正确的客户端请求。
我的想法是传递 WCF 客户端请求的一些 ID,例如 guid。COBOL 程序将存储 WCF guid 并调用另一个程序,该程序使用该 guid 在 COBOL 中为我获取数据。COBOL 程序然后返回带有 ID 的数据,但我需要一些方法来确保将正确请求的数据路由到正确的 WCF 客户端请求。
过程:
从这里,我如何确保 WCF 客户端 2 获取此数据而不是 WCF 客户端 1?
我想查看 COBOL 程序返回的数据,然后将其路由到请求它的客户端。这在 WCF 中可能吗?
我一直在查看 WCF 回调,认为我可以使用回调来查询 WCF_id,然后将数据返回到正确的 WCF 客户端。
我在正确的轨道上吗?我应该看看其他一些 WCF 功能吗?
c++ - 使用 Opencv 如何检测图像中的框,同时消除框内打印的对象?
我正在尝试在 qt 中开发盒子排序应用程序并使用 opencv。我想测量盒子的宽度和长度。
如上图所示,我只想检测最外面的线(即盒子边缘),这将给我盒子的宽度和长度,不管盒子里面印了什么。
我尝试了什么:
首先,我尝试使用
Findcontours()
并选择具有最大面积的轮廓,但外边缘的轮廓没有被封闭(在精明的输出中某处被破坏)多次,因此没有被检测为轮廓。霍夫线变换给了我太多的线,我不知道如何只得到四行感兴趣。
我尝试了我的算法,
将图像转换为灰度。
取一列图像,将每个像素与该列的下一个连续像素进行比较,如果该值的差异大于某个阈值(例如 100)该像素属于边缘,则将其存储在数组中。对所有列执行此操作,它将给出平行于 x 轴的框的上线。
遵循相同的程序,但从最后一列和最后一行(即从下到上),它将给出平行于 x 轴的下线。
同样找到平行于 y 轴的线。现在我有四个点数组,每边一个。
现在,如果盒子的放置方式使其侧面与 X 和 Y 轴完全平行,这会给我带来很好的结果。如果将盒子放置在某个方向上,甚至稍微朝向某个方向,它就会给我对角线,如下图所示。
如下图所示,我从所有四个点数组(负责绘制对角线)中删除了前 10 个和最后 10 个点并绘制了线,当盒子倾斜更多时,这将不起作用,并且测量也会出错.
现在我的问题是,
在opencv中是否有任何更简单的方法来获取盒子的外边缘(矩形)并获得尺寸,忽略盒子上印刷的任何东西并朝向任何方向?
我不一定要求纠正/改进我的算法,但也欢迎对此提出任何建议。抱歉发了这么大的帖子。
matlab - vision.OpticalFlow 没有显示视频,也没有显示流的值
我试图通过使用 Matlab 来查看物体的速度,所以我想出了这段代码
问题是我看不到流的值(我的意思是我正在寻找一些物体的速度,我可以使用 Matlab,可以吗?),也看不到视频
同时我不知道在这个代码不能的情况下这是否可以计算我的物体的所有速度,我如何在Matlab中计算多个速度?