c++ - 如何让 linux 系统等待 OpenCV 程序?

标签 c++ opencv webcam

我在 OpenCV 上有一个非常简单的程序:

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

using namespace std;

void showVideo(CvCapture *video)
{
    int width = (int) cvGetCaptureProperty(video, CV_CAP_PROP_FRAME_WIDTH);
    int height = (int) cvGetCaptureProperty(video, CV_CAP_PROP_FRAME_HEIGHT);
    //int fps = (int) cvGetCaptureProperty(video, CV_CAP_PROP_FPS);
    IplImage* frame = cvCreateImage(cvSize(width, height), 8, 1);
    cvNamedWindow("Showing Video:", 0);
    while (true)
    {
        frame = cvQueryFrame(video);
        cvShowImage("Showing Video:", frame);
        cvWaitKey(10);
    }
    //cvDestroyWindow("Showing Video:");
    //cvReleaseImage(&frame);
}
int main()
{
    CvCapture *video = cvCaptureFromCAM(CV_CAP_ANY);
    showVideo(video);
    return 0;
}

我想要一个 char ch; 和类似这样的东西 while(ch != 'q') 然后它仍然播放视频。有一些方法,例如 kbhit()getch() 但它们不是标准的,我想要一些东西,只要按下“q”键,然后显示视频将结束,否则视频将继续播放。

我该如何做这份工作?

最佳答案

如果在分配的时间内没有按键被按下,cvWaitKey() 返回 0,如果按键被按下则返回按键代码。更改对 cvWaitKey() 的调用以测试返回值,如下所示:

chr = cvWaitKey(10);
if (chr == 'q')
    break;

关于c++ - 如何让 linux 系统等待 OpenCV 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542134/

相关文章:

python - 读取 .JPG 图像并在不更改文件大小的情况下保存它

java - JMD 的替代方案

jquery - Webcam.js 错误 : No supported webcam interface found

c++ - Makefile 因 C++ 编译而失败

c++ - VIsual Studio 说我在字符串中有错误

python - 将作为二进制字符串加载的图像转换为 numpy 数组

java - 从浏览器将网络摄像头视频录制到本地文件系统

C++ Boost类内的多线程

c++ - 使用 libusb-win32 与 USB 转 DMX512 接口(interface)通信,找不到任何端点

java - 如何在 IntelliJ IDEA 12 中使用 OpenCV