问题标签 [highgui]

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 投票
0 回答
322 浏览

c++ - OpenCV 2.3.1 出现 highgui 错误

我正在尝试在 64 位 OSX Mountain Lion 机器上构建 OpenCV 2.3.1,并且无法通过一组特定的“使用未声明的标识符”出错。我试图从 Git 构建 taz.gz 文件和源代码,但错误相同。

有没有人在 OSX Mountain Lion 机器上成功构建 2.3.1?如果是这样,您是如何克服以下错误的:

opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:486:5: 错误:使用未声明的标识符 'av_open_input_file' av_open_input_file(&ic, 文件名, NULL, 0, NULL);

opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:494:5:错误:使用未声明的标识符'avcodec_thread_init'avcodec_thread_init(enc,get_number_of_cpus());

opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:524:15: 错误:使用未声明的标识符 'av_open_input_file' int err = av_open_input_file(&ic, _filename, NULL, 0, NULL);

opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:541:9:错误:使用未声明的标识符“avcodec_thread_init”avcodec_thread_init(enc,get_number_of_cpus());

到目前为止,我看到了几个选项。我可以切换到 Ubuntu,它似乎有一个更简单的构建过程,或者我可以修复 highgui 代码。

如果您以前有构建此版本的经验,我将不胜感激。

0 投票
2 回答
1035 浏览

ios - OpenCV ios项目崩溃

我已经构建OpenCV了框架,IOS并且正在从头开始学习OpenCV,该框架编译得很好,并且当我运行此代码时:

应用程序因此日志而崩溃:

我试图在网上寻找答案,但无法弄清楚为什么会发生这种情况。任何想法 ?

0 投票
1 回答
704 浏览

xcode - cvCreateTrackbar() 不工作

我正在为初学者构建一个带有 openCV 书的应用程序。这是main.m文件的代码:

电影播放得很好,但我看不到 trackBar。我错过了什么?

0 投票
1 回答
1305 浏览

c++ - OpenCV's highgui in C++ Qt application

I am trying to combine OpenCV's webcam access and image display functions with Qt's Network capabilities (Qt 4.8.1 C++ console application using OpenCV 2.4.2 highgui). I am currently trying to avoid converting a cv::Mat to a Qt format and displaying it by custom Qt GUI for simplicity.

For this, I am creating a wrapper class that does all the OpenCV stuff (cap = new VideoCapture(), namedWindow(), cap->read(), imshow(), destroyAllWindows(), cap->release()) controlled by a QTimer an move it to a QThread. This mostly works (still garbage characters in the window title) but sometimes OpenCV creates a new window when the thread's parent class is receiving signals from its QTCPServer. This results in "dead" image windows that are not updated anymore.

The order of creation (OpenCV thread / QTcpServer) does not seem to matter - however, if no client connects, I can see that OpenCV creates a small window first, that consequently gets enlarged to fit the video image size. If a client connects, the smaller window most of the times remains (Window title garbage like "ét), the newer window receives the image data properly (Window title garbage like ",ét").

Not moving the OpenCV wrapper object to a thread does work as well, but the same problem occurs (even worse, two dead windows are created, the second of which already received an image frame).

What could I generally be doing wrong to cause such behavior?

I suspect that the problem may be caused by the named window being created and accessed in two different methods of my QOBject wrapper class (Constructor and slot). Or the QTCPServer is blocking the Qt event loop? Or that the OpenCV window handle is "garbage-collected" for some reason, when the Signal-Slot mechanism is triggered by QTCPServer events, and then imshow creates a new window? There is no obvious way of accessing the window by pointer, so this must be the reason. Removing the initial namedWindow() does away with the small, empty window but still, two windows are created.

It seems I have to convert and display the images myself after all - or is there another way?

0 投票
1 回答
4618 浏览

c++ - cv::imshow 有时很慢

我有一个问题cv::imshow。对于我的图像大小,它通常消耗大约 1-2 毫秒的处理时间,但在我的处理管道中的某个时间点,它对相同类型的图像使用 4-8 毫秒。

我有一个方法

image是一个成员变量,highgui 窗口是在其他地方创建的。时间测量与boost::posix_time ptime和一起使用time_duration

被称为。

关键是,如果displayImage()在复杂的处理链中调用(从视频文件加载图像,一些预处理等),cv::imshow会变得非常慢,而在“暂停”视频中调用以重绘更新的图像非常快。

如果我cv::waitKey(10)在时间测量开始之前添加一个cv::imshow,也会变得更快。所以可能有一些(gui?)事情必须处理哪个块cv::imshowcv::waitKey(40)在循环中的单独线程中调用,该线程等待键盘输入以控制(例如暂停/恢复)视频。据我所知,cv::imshow是在某种cv::waitKey时间处理的队列中执行的?!?我在哪里可以找到有关在此期间执行的所有任务的信息?也许我可以重新排列我的代码的某些部分(现在真的很复杂)以imshow始终更快。

那么调用中会发生cv::imshow什么以及在不同情况下执行相同调用的慢/快执行可能是什么原因?

编辑:我认识到在“暂停”模式下的常规执行和处理之间的一个区别是,在暂停模式下,该方法从绑定的鼠标回调函数(从windowThread?)开始,而在常规模式下,它从主处理线程开始.

0 投票
1 回答
6771 浏览

android - 如何使用 OpenCV 在 Android 中获取带有可绘制输入的 Mat

我在可绘制文件夹中有一些图像文件。现在,我想将它们转换为 opencv Mat 对象。我找到了一个功能:

它正在读取文件路径以获取 Mat。

但是,我无法获取图像的路径,因为我只能通过使用它们的 id(如 R.drawable.img1)来读取它们。

我怎样才能达到我想要的?

0 投票
2 回答
2323 浏览

c++ - opencv中如何区分单击和双击

在 OpenCV 中,似乎双击动作也会触发单击事件。这是一个示例代码。single_click() 总是在 double_click() 之前调用。

是否可以在不先触发 single_click() 的情况下触发 double_click() ?

谢谢!

0 投票
1 回答
619 浏览

c++ - 将焦点移至控制台 opencv c++

我有一个c++创建opencv窗口的控制台应用程序。

我正在使用cvWaitKey(1)以捕捉键盘按键。

这是我想做的事情:

当用户按下s键时,我希望他在控制台中输入一些内容。但是,为此,按下后s他需要手动单击控制台窗口(以便将焦点放在它上面),然后他才能输入文本。

是否可以将焦点转移到生成opencv图像的控制台,然后将其转移回opencv窗口?

0 投票
0 回答
549 浏览

opencv - 将 MJPEG 用于 OpenCV 时出现 Highgui V4L 错误

我在 ARM A9 处理器上运行 OpenCV。我正在尝试使用 MJPEG,因此我的 C920 网络摄像头运行得更快。我的程序的开头如下:

程序编译,但是,当我运行它时出现以下错误:

我完全不知道该怎么做。有谁知道为什么会发生此错误?

0 投票
2 回答
24451 浏览

opencv - “LNK1112:模块机器类型“x64”与目标机器类型“X86”冲突

我正在使用 Visual Studio 2012。我得到了错误

我尝试修改属性以匹配我的 open_cv 应用程序要求。