问题标签 [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.

0 投票
1 回答
345 浏览

c++ - OpenCV 检测运动

这可能是一个转发,但我想我可能会自己打开一个话题,因为到目前为止还没有真正回答我的问题。

好的,所以如果我将网络摄像头连接到机器人上,是否可以使用网络摄像头来确定机器人的移动方式(前进、后退、左转、右转),因为我正在做一个需要我检测对齐的项目使用网络摄像头沿着走廊走下机器人。

这可能吗?

0 投票
1 回答
2069 浏览

opencv - 如何检测自然文本图像中的字符?

我有一个关于字符识别的项目(使用 openCV 库)。我不知道如何检测文本图像中的字符。你能推荐一些方法来做到这一点吗?谢谢大家!

0 投票
1 回答
1907 浏览

c++ - 使用 Raspberry Pi 相机和 Open Cv 显示视频时出错

当我和我的朋友运行这段代码时,输​​出只是一个黑色窗口。我们预计它会开始从我们的 RaspberryPi 相机流式传输视频。我们使用的是 RaspberryPi、RaspberryPi 相机、openCv 和 Raspicam 库。

这是我们的代码:

是我们用来安装 RaspiCam 库的教程的链接。如果您需要更多信息,请告诉我。谢谢!

0 投票
1 回答
516 浏览

c++ - Hough Circles, and an overly complicated solution

So I've been working on recognizing a yoga ball with Hough Circles. Now, when converted to grayscale, it works straight away. Unfortunately, I have to take a more complicated procedure due to there being multiple of these coloured balls and only wanted to detect the blue.

Unfiltered ball:

unfiltered ball

Filtered ball:

filtered ball

Steps of my algorithm:

  1. convert from BGR to HSV
  2. blur the image
  3. filter HSV for only select values (in my case dark blue to light blue due to lighting)
  4. invert the image
  5. use morphology to fill in the part that was lighted
  6. blur again
  7. filter the blur so it's a solid shape instead of unrecognisable blurry grayscale
  8. detect with hough-circles. The MAT is still Grayscale so that isn't the problem.

Code:

I've already read as much as I possibly could online on this matter, and nothing I've found so far has helped. Forgive the sloppy commenting, and there are some failed algorithms included with using Canny Edge detection, so don't pay too much mind to them. Does anyone know of a solution to this detection issue?

0 投票
2 回答
1032 浏览

java - JavaCV cvInRangeS 错误

我正在尝试过滤掉图像中的轮廓。我的代码没有语法错误,但是当我运行我的程序时,我得到了很多红色文本。我已将故障点定位为 cvInRangeS。

您可以通过 println 语句看到这一点,仅使其成为“thourgh3”

square.jpg 位于项目目录中,因此如果有帮助,这应该不是问题。

控制台返回

完整代码如下

0 投票
1 回答
1114 浏览

image - 我正在寻找视频注释工具

我正在寻找一个包含以下未来的简单视频注释工具:

在各种框架中的对象周围创建矩形,该工具允许将这些信息(框架#、rect1.xy 等...)导出到 txt 文件/excel 文件等...

我今天一直在搜索整个网络,但找不到一个解决方案。我只找到 vatic,但你必须为亚马逊的 Mechanical Turk 付费:

http://web.mit.edu/vondrick/vatic/

有人知道一些做同样事情的工具吗?

0 投票
1 回答
395 浏览

architecture - Togaf 9.1 架构愿景——

为这个具体问题道歉,但需要在下面理解,因为我试图理解这些步骤背后的基本原理,请帮忙。

来自 TOGAF 9.1 文档:

7.4.3 确认和阐述业务目标、业务驱动因素和约束

确定组织的业务目标和战略驱动因素。如果这些已在企业的其他地方定义,请确保现有定义是最新的,并澄清任何不明确的领域。否则,请回到《架构工作声明》的发起者那里,并与他们一起定义这些基本项目,并确保他们得到公司管理层的认可。. ......

问题

不应该——回到赞助商或架构工作请求文件,因为此时架构工作声明尚未开始?

参考:Arch Vision 步骤

7.4.1 - 建立架构项目

7.4.2 - 识别利益相关者、关注点和业务需求

7.4.3 -确认并详细说明业务目标、业务驱动因素和约束

7.4.4 - 评估业务能力

7.4.5 - 评估业务转型的准备情况

7.4.6 - 定义范围

7.4.7 - 确认和阐述架构原则,包括业务原则

7.4.8 - 开发架构愿景

7.4.9 - 定义目标架构价值主张和 KPI

7.4.10-识别业务转型风险和缓解活动

7.4.11 -制定架构工作声明;获得批准

0 投票
1 回答
826 浏览

mapping - 角度坐标映射

我有这个问题,我可能在我的脑海中过于复杂。我已经做了很长时间了,如果有人能给我一些指导,我将不胜感激。

所以我正在尝试做的是从天空拍摄的图像上的地图坐标,到地面上平坦表面上的坐标。这从一个点的正上方很好,我可以通过使用基本三角法计算的某个因子来缩放我的坐标。

问题是相机是否倾斜。

http://i61.tinypic.com/359wsok.png [注意,这里的高度是Z轴]

我希望我的图表有意义。中心线(终止于 (x2,y2) 的那条线将另外两条线一分为二,即每条外线都与中心线相距 (1/2)a 度。我知道这可能会变得非常复杂。越水平相机指向, 更多的表面将在图像的视野中. 显然这意味着图像最远部分的 2 个像素之间的距离大于在图像中“放大”的更近的像素之间的距离有道理。如果我能在与垂直方向仅 40 度角的情况下处理相当不错的工作,那就太好了。

我的第一次尝试是获取视图中表面的大小,然后使用它来缩放我的坐标。但是,我不相信这行得通。(x2,y2) 可能不在捕获表面的中心,并且由于捕获的表面不在正下方,因此需要将某种偏移添加到坐标中。

我希望这一切都清楚了。如果您需要更多信息,请告诉我。我只是绕圈子。

谢谢

0 投票
2 回答
2002 浏览

matlab - 训练级联对象检测器边界框超出范围?

我正在尝试使用 Matlab(视觉工具箱)中的内置函数来训练级联对象检测器。但是,运行命令后出现以下消息。

*

*

我不明白为什么边界框可能超出范围。我的正图像的所有参数都设置正确(起点 x、y、宽度和高度。我曾经createMask(h)创建一个蒙版并找到 x 和 y 的最小坐标作为起点,每个维度的 max-min是宽度和高度),而负图像(据我所知)只是不需要任何设置的图像。

有人遇到过同样的问题吗?你是怎么解决的?

编辑:这是代码。我没有用于训练“数据”结构的工具箱,所以我自己写了一个

对不起,如果它是凌乱的......

0 投票
1 回答
936 浏览

c++ - Add 1 to vector value - Histogram in C++

I guess it's such an easy question (I'm coming from Java), but I can't figure out how it works.

I simply want to increment an vector element by one. The reason for this is, that I want to compute a histogram out of image values. But whatever I try I just can accomplish to assign a value to the vector. But not to increment it by one!

This is my histogram function:

But whatever I try to add one to the histogramArray position, it leads to just 0 in the output. I'm only allowed to assign concrete values like:

Is there any simple and easy way? I though iterators are hopefully not necesarry at this point, because I know the exakt index position where I want to increment something.

EDIT: I'm so sorry, I should have been more precise with my question, thank you for your help so far! The code above is working, but it shows a different mean value out of the histogram (difference of around 90) than it should. Also the histogram values are way different than in a graphic program - even though the image values are exactly the same! Thats why I investigated the function and found out if I set the histogram to zeros and then just try to increase one element, nothing happens! This is the commented code above:

So the position 1 remains 0, instead of having the value height*width. Because of this, I think the correct calculation histogramArray[image[i][j]]++; is also not working properly.

Do you have any explanation for this? This was my main question, I'm sorry.

Just for completeness, this is my mean function for the histogram:

And I initialize the image like this:

But there shouldn't be any problem with the initialization code, since all other computations work perfectly and I am able to manipulate and safe the original image. But it's true, that I should change width and height - since I had only square images it didn't matter so far. The Histogram is created like this and then the function is called like that:

So do you have any clue why this part histogramArray[1]++; don't increases my histogram? histogramArray[1] remains 0 all the time! histogramArray[1] = 2; is working perfectly. Also histogramArray[(int)image[i][j]]++; seems to calculate something, but as I said, I think it's wrongly calculating. I appreciate any help very much! The reason why I used a 2D Array is simply because it is asked for. I like the 1D version also much more, because it's way simpler!