Изменить разрешение извлеченного кадра в Opencv

У меня есть видеопоток H.264, и мне нужно извлечь кадры из него. Однако, когда я извлекаю кадры, качество действительно плохое, так как мне нужно выполнить цветовую сегментацию! Я хочу знать, как я могу извлечь рамку и преобразовать ее в B G R, чтобы получить изображение лучшего качества.

Вот код, который у меня есть:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(){
VideoCapture capture("1.dv4");
if(!capture.isOpened())
return 1;

double rate=capture.get(CV_CAP_PROP_FPS);

bool stop(false);

Mat frame;
namedWindow("Extracted Frame",CV_WINDOW_NORMAL);

cout <<"Rate is="<<rate;

int delay=1000/rate;

while(!stop){
if(!capture.read(frame))
break;

imshow("Extracted Frame",frame);
imwrite("C:/Users/DELL/Documents/Visual Studio 2010/Projects/VideoFrameCapture/VideoFrameCapture/frame.jpg",frame);

if(waitKey(delay)>=0)
stop=true;
}
capture.release();
waitKey(0);
return 1;
}

1

Решение

Как только вы открыли VideoCapture, добавьте это:

 capture.set(CV_CAP_PROP_CONVERT_RGB, 1);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]