- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我是 opencv 的新手,也许有些地方我只是不明白。我有一个 waitkey,等待字母 a,另一个应该中断,并导致退出。一个或另一个似乎工作正常,但不是两个。我没有收到编译器错误或警告。包含的代码将为枚举图片拍摄一系列照片,但当我按下键盘上的字母“q”时不会关闭。我做错了什么?
#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv){
VideoCapture cap;
// open the default camera, use something different from 0 otherwise;
if(!cap.open(0))
return 0;
// Create mat with alpha channel
Mat mat(480, 640, CV_8UC4);
int i = 0;
for(;;){ //forever
Mat frame;
cap >> frame;
if( frame.empty() ) break; // end of video stream
imshow("this is you, smile! :)", frame);
if( waitKey(1) == 97 ){ //a
String name = format("img%04d.png", i++); // NEW !
imwrite(name, frame);
}
if( waitKey(1) == 113 ) break; // stop capturing by pressing q
}
return 0;
}
如何获得退出程序的“q”键?
最佳答案
你只需要使用一个waitKey
,获取按下的键,并采取相应的 Action 。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv){
VideoCapture cap;
// open the default camera, use something different from 0 otherwise;
if (!cap.open(0))
return 0;
// Create mat with alpha channel
Mat mat(480, 640, CV_8UC4);
int i = 0;
for (;;){ //forever
Mat frame;
cap >> frame;
if (frame.empty()) break; // end of video stream
imshow("this is you, smile! :)", frame);
// Get the pressed value
int key = (waitKey(0) & 0xFF);
if (key == 'a'){ //a
String name = format("img%04d.png", i++); // NEW !
imwrite(name, frame);
}
else if (key == 'q') break; // stop capturing by pressing q
else {
// Pressed an invalid key... continue with next frame
}
}
return 0;
}
关于c++ - opencv waitkey 没有响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39089304/
我刚刚开始使用 Python 的 OpenCV 库,遇到了一些我不理解的东西。 cap = cv2.VideoCapture(0) while True: ret, frame = cap
我知道 waitKey(0) 会无限期地等待按键,而 waitKey(600000) 应该等待 10 分钟,这会提示问题,最大值是多少 有限 时间(以毫秒为单位)?我的猜测是程序中可以编码的最大数字。
我遵循了一个教程,并尝试在按q时退出程序,但这是行不通的,无论我按哪个键都可以退出,这就是代码: twi = cv2.imread('large.png') cv2.namedWindow('imag
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题?通过 editing this post 添加详细信息并澄清问题. 3年前关闭。 Improve this
我有一个用 C++ 和 Qt5.7 和 OpenNI 编写的多线程应用程序。它有一个启动第二个线程的主线程,该线程从 .oni 记录文件(asus xtion pro live)捕获帧进行一些处理,并
我正在编写代码以将 mask 应用于图像。写到一半我意识到: //applying a mask throughout the image using user defined function. #
我在 OpenCV 中有一个 VideoCapture,我可以成功显示给定的视频。我现在想做的是按一个键暂停和播放(可选哪个只要能用)。我一直在阅读有关 waitKey 的内容,但我不了解这整件事 (
我想处理方向键。但是当我打印出 waitKey() 函数的输入值时,它是 0。我不知道为什么。我尝试从 "int"更改为 "char",但它不起作用。我该如何解决这个问题。 int pos = 100
我是 opencv 的新手,也许有些地方我只是不明白。我有一个 waitkey,等待字母 a,另一个应该中断,并导致退出。一个或另一个似乎工作正常,但不是两个。我没有收到编译器错误或警告。包含的代码将
此 Python 代码全屏显示图像: blank_image = cv2.imread('blank.jpg') cv2.namedWindow("bw", cv2.WND_PROP_FULLSCRE
我正在尝试使用在线教程为图像处理项目学习 OPENCV。 opencv 文档说 waitKey() 返回一个 int。这应该是按下的键的 ASCII 值。但是大多数在线教程都使用以下代码,可以正常编译
这个问题在这里已经有了答案: What does OpenCV's cvWaitKey( ) function do? (9 个回答) 关闭 6 年前。 在 OpenCV 中,如果我不在捕获图像的显
我正在用 C++ 和 OpenCV 开发一个视频播放器,需要高精度,但是当我制作一个 cv::waitKey 时,该函数从不等待指定的毫秒数: tWait.resetAndRestart();
我有一个视频,我想处理帧。 VideoCapture capture("movie.mpg"); while(true) { Mat frame; capture >> frame; //
我正在调试一些在 Ubuntu 14 上使用 OpenCV 的 C++ 代码,众所周知,它可以在 Ubuntu 12 上运行,也可能与其他 OpenCV 库构建一起运行。 之前是什么 int key_
我在使用 OpenCV 时尝试获取一些用户文本输入时遇到了一些困难。 我开发了一个迭代程序,它打开图像、检测颜色并使用标准 cv::imshow() 显示它们,然后是强制性的 waitKey()。在此
我在 ubuntu 12.04 上使用 opencv 2.4.7。我正在使用 python 编程,但在运行此脚本时遇到问题: import cv2 img = cv2.imread('34762092
我正在学习 OpenCV,我决定用它制作一个蛇游戏。它几乎完成了,但有一个看起来很简单的小问题,但我找不到解决方案。 while True: move() cv2.imshow('Sn
我编写了一个小脚本,允许使用 OpenCV 运行/暂停视频流。我不明白为什么我需要以我所做的方式使用 cv2.waitkey() 。我的代码结构如下: def marker(event, x, y,
我一直在研究一个非常简单的 python 代码来获取视频输入。 import cv2 import numpy as np #Capturing video cap = cv2.VideoCaptur
我是一名优秀的程序员,十分优秀!