Как обрезать формат видео с камеры в OpenCV C++?

221
25 мая 2018, 10:10

Коллеги, подскажите: Необходимо подрезать верхнуюю половину снимаего с камеры видео, чтобы впоследствии обрабатывалась и выводилась на экран нижняя половина снимаемого видео. С помощью sub_frame=frame(Rect(0,0,x1,y1,); подрезать только нижнюю половину. При попытке присвоить первым двум аргументам Rect() иные значения, выводится исключение. Код ниже:

int main()
{
VideoCapture cap(0);
Mat frame;
Mat sub_frame;
Mat frame_gray;
Mat frame_blur;
Mat frame_canny;
Mat frame_hough;
vector<Vec4i> lines;

namedWindow("Lane Detection", WINDOW_AUTOSIZE);
while (true)
{
    cap.read(frame);
    sub_frame=frame(Rect(0,0,1280,640));        
    cvtColor(frame, frame_gray, COLOR_BGR2GRAY);
    GaussianBlur(frame_gray,frame_blur,Size(3,3),0);
    Canny(frame_blur,frame_canny,50,125,3);
    cvtColor(frame_canny,frame_hough,COLOR_GRAY2BGR);
    HoughLinesP(frame_canny,lines,2,CV_PI/720,5,120,2);
    for (int i=0; i<lines.size(); i++)
    {
        Vec4i l=lines[i];
        line (frame, Point(l[0],l[1]),Point (l[2],l[3]),Scalar(0,0,255), 4, LINE_AA);
    }
    imshow("Lane Detection",sub_frame);
    if (waitKey(10)==27)
    {break;}
 }
return 0;
}
Answer 1

Установить ROI с координатами и скопировать в меньший размер.

sub_frame = frame(Rect(0, yshift, width, height - yshift));  
READ ALSO
Qt - Как получить metadata у фотографии?

Qt - Как получить metadata у фотографии?

Как мне извлечь мето данные широту и долготу у файла-картинки? Сейчас, когда я обрабатываю не один файл, а несколько выдаёт ошибку: no match for call to '(const...

222
Ввод односвязного списка

Ввод односвязного списка

Есть один небольшой вопросУ меня есть список с двумя полями данных (одно для буквы, а второе для числа)

209
Помогите написать функцию [закрыт]

Помогите написать функцию [закрыт]

В массиве А(N,M) строки, не содержащие четных элементов, расположить в порядке убывания сумм элементов

182
Вывод объектов на консоль

Вывод объектов на консоль

Вот такой вопрос, почему каждый раз ,то что я ввожу заменяется новыми введенными данными? Выводится на консоль только новая информация

237