小编Ruh*_*boy的帖子

如何使用OpenCV以固定帧率(fps)播放任何视频?

OpenCV中是否有任何方式或功能允许我们以固定帧速率(fps)播放任何视频?不同的视频可能有不同的帧速率,但通过使用OpenCV库我们可以按照我们定义的固定帧速率播放它们吗?

提前致谢.

c++ opencv computer-vision

9
推荐指数
1
解决办法
5287
查看次数

在OpenCV中检索当前帧编号

如何使用OpenCV检索视频的当前帧编号?OpenCV是否具有用于获取当前帧的任何内置函数,或者我必须手动执行此操作?

c++ opencv vision frame

7
推荐指数
3
解决办法
2万
查看次数

使用鼠标从视频上的矩形设置ROI

我有视频,当程序运行时,视频的第一帧被视为一个图像,并允许用户在图像上绘制一个矩形,绘制矩形后,用户必须右键单击图像以确认矩形.当鼠标右键单击时,图像消失,视频开始播放,其上绘制的矩形.

我能够完美地绘制矩形,但我无法将该矩形设置为ROI.

我想要做的是将该矩形设置为感兴趣区域(ROI),以对该ROI进行一些图像处理.我无法将我绘制的矩形设置为ROI.

我在Visual Studio 2010中使用OpenCV.稍后我将尝试将此程序集成到QT创建者中.

任何帮助,将不胜感激.

提前致谢.

我的完整代码如下:

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include<opencv2\opencv.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv/highgui.h>
#include <opencv/cxcore.h>
#include <opencv\cvaux.h>

using namespace cv;
using namespace std;
void my_mouse_callback( int event, int x, int y, int flags, void* param );
bool destroy=false;
CvRect box;
IplImage* image;
IplImage* frame2;
bool drawing_box = false;

void draw_box( IplImage* img, CvRect rect)
{
cvRectangle( img, cvPoint(box.x, box.y), cvPoint(box.x+box.width,box.y+box.height),
            cvScalar(0,0,255) ,2);

CvRect rect2=cvRect(box.x,box.y,box.width,box.height);
//cvSetImageROI(image, rect2);   //here I wanted to set …
Run Code Online (Sandbox Code Playgroud)

c c++ opencv image-processing computer-vision

6
推荐指数
1
解决办法
1万
查看次数

并行计算图像的直方图

如何使用并行计算计算图像的直方图?串行图像的直方图很容易,但我不知道在并行计算它.

任何想法,算法,源代码或有用的链接将不胜感激.

我正在使用MPI.

parallel-processing image-processing mpi

2
推荐指数
1
解决办法
1915
查看次数

无法将'cv :: VideoCapture'转换为'CvCapture*'

我有一个简单的程序,它拍摄视频并播放它(虽然它对视频进行了一些图像处理).可以从对话框结果中检索视频,也可以直接通过提供文件的路径来检索视频.当我使用cv :: CvCapture capture1时,我得到了像capture1.isOpen(),capture1.get(CV_CAP_PROP_FRAME_COUNT)等属性,但是当我使用CvCapture*capture2时,我得到了奇怪的错误.

我想使用cv :: CvCapture capture1,因为我的函数与capture1一致.或者是否有任何方法可以使用这两种类型,在它们之间进行某种转换,如类型转换或其他类型.

其实我有两个节目,程序1的功能是为CV :: CvCapture和程序2的功能是为CvCapture*.我的意思是这两个程序以不同的方式读取视频文件.

然后我合并了这两个程序,以使用program1中的一些函数和program2中的一些函数.但我无法将cv :: CvCapture转换为CvCapture*.

我正在使用OpenCv和Qt Creator.

我的代码在这里发布很长,但我简化了我的代码,使其更小,更易理解.我的代码可能无法正确编译,因为我修改它以使其更简单.

任何帮助,将不胜感激.提前致谢 :)

void MainWindow::on_pushButton_clicked()
{

 std::string fileName = QFileDialog::getOpenFileName(this,tr("Open Video"), ".",tr("Video Files (*.mp4 *.avi)")).toStdString();

cv::VideoCapture  capture1(fileName);       // when I use the cv::VideoCapture capture it gives  an error

//error: cannot convert 'cv::VideoCapture' to 'CvCapture*' for argument '1' to 'IplImage* cvQueryFrame(CvCapture*)
    //CvCapture* capture2 …
Run Code Online (Sandbox Code Playgroud)

c c++ opencv image-processing computer-vision

2
推荐指数
1
解决办法
1万
查看次数