- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能是一个愚蠢的问题,但我真的无法弄清楚。
首先:抱歉标题含糊不清,我不太确定如何用几句话来描述我的问题。
我在 MS Visual Studio、C++ 中使用 OpenCV 2.4.3。我正在使用 VideoCapture 接口(interface)从我的笔记本电脑网络摄像头捕获帧。
我的程序应该做的是:
循环用户的不同姿势,对于每个姿势:
int main() {
Mat img, face_img, img_start;
Rect *face;
VideoCapture cam(0);
ofstream fout("dataset/dataset.txt");
if(!fout) {
cout<<"Cannot open dataset file! Aborting"<<endl;
return 1;
}
int count = 0; // Number of the (last + 1) image in the dataset
// Orientations are: 0°, +/- 30°, +/- 60°, +/-90°
// Distances are just two, for now
// So it is 7x2 images
cam.read(img_start);
IplImage image = img_start;
face = face_detector(image);
if(!face) {
cout<<"No face detected..? Aborting."<<endl;
return 2;
}
// Double ROI dimensions
face->x = face->x-face->width / 2;
face->y = face->y-face->height / 2;
face->width *= 2;
face->height *=2;
for(unsigned i=0;i<14;++i) {
// Wait for the user to get in position
getchar();
// Get the face ROI
cam.read(img);
face_img = Mat(img, *face);
// Save it
stringstream sstm;
string fname;
sstm << "dataset/image" << (count+i) << ".jpeg";
fname = sstm.str();
imwrite(fname,face_img);
//do some other things..
最佳答案
您的实现的问题是相机不能自由运行并实时捕获图像。当您启动相机时,视频捕捉缓冲区会在等待您读取帧时被填满。一旦缓冲区已满,它不会为新帧丢弃旧帧,直到您读取并释放其中的空间。
除了您的“进程”线程之外,解决方案是有一个单独的捕获线程。每当有新帧进入时,捕获线程都会从缓冲区中读取帧,并将其存储在“最近帧”图像对象中。当进程线程需要最近的帧时(即当您按 Enter 时),它会锁定一个互斥体以确保线程安全,将最近的帧复制到另一个对象并释放互斥体,以便捕获线程继续读取新帧。
关于OpenCV VideoCapture 读取问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411490/
我几乎阅读了所有关于这个主题的问题,但我没有解决它。我正在研究 Linux/Mint。我试图用 opencv 打开我的网络摄像头(或任何无关紧要的视频)并从视频中读取一帧。我写了这段代码: impor
我正在尝试使用 C++ 和 OpenCV 来使用我的网络摄像头,但我遇到了这个错误 (...):Images.cpp:(.text+0x27): undefined reference to cv::
我已经在禁用 GPU 的情况下编译了 caffe,然后 cp caffe/build/Makefile openpose/Makefile.conf 运行 make all -j 6 得到这些错误:
我正在运行以下代码: import numpy as np import cv2 import os count = 0 cap = cv2.VideoCapture("/home/simon/PRO
我有一个问题似乎是由 OpenCV 3.xx 引起的 - 该问题在 OpenCV 2.xx 中没有体现 问题是读取视频文件。我的代码设置如下: >#include >#include >#incl
这可能是一个愚蠢的问题,但我真的无法弄清楚。 首先:抱歉标题含糊不清,我不太确定如何用几句话来描述我的问题。 我在 MS Visual Studio、C++ 中使用 OpenCV 2.4.3。我正在使
我正在使用 webrtc 示例代码从我的 Android 设备流式传输到网页。示例代码不具备切换摄像头的功能。我试图解决它,但失败了。该示例使用 VideoCapturerAndroid 类,我发现切
我正在尝试打开视频并将其写入某个位置: #include #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp
我是论坛的新手。几周前我开始将 Opencv 与 Java 结合使用。在我的程序中,我使用 videocapture 从 avi 文件中读取帧。昨天我注意到,在我的程序的不同运行中,从文件读取的第 n
我已经使用工作线程实时获取最新帧,代码如下。但是在我的代码中,有一个问题。该帧一直是第一帧,它没有更新。结果,第一帧做了remap(),remap result frame做了下一个循环remap .
根据这个article的回答这是指将单个图像组合成4面的方式。从那里开始,我想从仅使用单个视频更改为使用 4 个视频作为输入。 这是我的代码,它使用单个视频作为输入 import cv2 import
import numpy as np import cv2 cap = cv2.VideoCapture(0) fourcc = cv2.cv.CV_FOURCC(*'XVID') out = cv2
我正在尝试对 OpenCV 的 VideoCapture 类进行“包装”,但无法使其正常工作,我的代码如下: #include "opencv2/opencv.hpp" #include "openc
我可以在 VLC 中打开一个流,但在 OpenCV 中我无法捕获帧。 (Python 2.7、OpenCV 3.4.3 二进制分发版 x86、Windows 10)。我一直在关注本指南:https:/
我有几个 avi 文件,我试图逐帧读取这些文件。我使用 opencv 3.1.0 来读取帧: import cv2 cap = cv2.VideoCapture(file_path) 然后我只读了 c
该代码显示正确的图像,但是在图像“帧”播放后显示错误消息。所以我无法获得“res”图像 它只显示“无对象文件”错误消息。 我应该修复哪一部分才能使其正常工作? import cv2 import nu
我有一台装有2个Nvidia RTX GPU的机器。 主要任务是解码来自IP摄像机的h264视频,并使用GPU 将原始帧编码为JPEG 。 我通过以下方式从源代码构建了opencv + cuda: c
import cv2 import sys cpt=0 vidStream=cv2.videoCapture(0) while True: ret,frame=vidStream.read()
我一直试图找到一种方法来异步检查以查看我使用videocapture拍摄的下一帧相机是否准备就绪。 我遇到了waitAny(),它被描述为“等待VideoCapture的就绪帧”。 在OpenCV文档
定义类很新,我遇到了在自制类中定义 VideoCapture 对象的问题。请参阅下面的代码。 我尝试创建一个包含有关视频文件的所有信息的类。所以我初始化了 videoCapture 对象。哪个工作正常
我是一名优秀的程序员,十分优秀!