Я делаю мозаику из видео в Opencv. Я использую этот пример для сшивания кадров видео: http://docs.opencv.org/doc/tutorials/features2d/feature_detection/feature_detection.html. В конце концов, я делаю это для слияния новый кадр с стежок, созданный на пройденный итерации:Opencv Изменить размер строчки
Mat H = findHomography(obj, scene, CV_RANSAC);
static Mat rImg;
warpPerspective(vImg[0], rImg, H, Size(vImg[0].cols, vImg[0].rows), INTER_NEAREST);//(vImg[0], rImg, H, Size(vImg[0].cols * 2, vImg[0].rows * 2), CV_INTER_LINEAR);
static Mat final_img(Size(rImg.cols*2, rImg.rows*2), CV_8UC3);
static Mat roi1(final_img, Rect(0, 0, vImg[1].cols, vImg[1].rows));
Mat roi2(final_img, Rect(0, 0, rImg.cols, rImg.rows));
rImg.copyTo(roi2);
vImg[1].copyTo(roi1);
imwrite("stitch.jpg", final_img);
vImg[0] = final_img;
Так вот моя проблема: очевидно, стежок становится больше на каждой итерации, так как я могу изменить его в сделать его подходящим в изображении final_img
?
EDIT Извините, но я должен был удалить изображения
Привет! на каждом шаге стежка я обновляю ссылочное изображение только сшитым, поэтому я думаю, что я в том случае, когда вы назвали дрейф. Если я в этом случае, как я могу решить? По первому вопросу, я постараюсь сделать то, что вы говорите, и сообщите, работает ли это! – bjorn
Если вы взяли сшитое изображение в качестве ссылки, вы также можете потерять в некоторых случаях некоторую информацию (из-за размытия, введенного интерполяцией, или разницы в шкале между сшитым результатом и текущим фреймом). Альтернативная возможность (возможно, с более высоким качеством, но большая нагрузка на разработку) заключалась бы в том, чтобы вычислить все гомографии в первый проход, а затем искать сшитое изображение, оптимизированное из всех входных кадров одновременно. – sansuiso
Ммм Я понимаю, но я не могу этого сделать, потому что это поток, а не видеофайл на ПК. Сейчас я пытаюсь изменить размер стежка, я сообщу, если мне удастся. , Спасибо за быстрые ответы! – bjorn