2013-07-25 2 views
3

Я пытаюсь использовать другой способ для сшивания изображений, но я получил следующую ошибку ... Я пытаюсь изменить формат изображений или размер, но ничего не происходит ... любые идеи?Compose panorama doesn`t work

ошибка:

Error: Assertion failed (imgs.size() == imgs_.size()) in unknown function, file ......\src\opencv\modules\stitching\src\stitcher.cpp , line 128

мой код:

int main(int argc, char** argv) 
{ 


Stitcher stitcher = Stitcher::createDefault(); 
Mat image11,image22; 
Mat pano,output_frame; 
vector<Mat> imgs,currentFrames; 
// Load the images 
Mat image1= imread(argv[1]); 
Mat image2= imread(argv[2]); 

printf("-- umwandlung works"); 

currentFrames.push_back(image1); 
currentFrames.push_back(image2); 

stitcher.estimateTransform(currentFrames); 

stitcher.composePanorama(currentFrames, output_frame); 



waitKey(0); 
} 
+0

Почему у вас так много неиспользуемых переменных? BTW, проверьте, действительно ли ваш 'imread' успешно. Например, вы можете загрузить некоторые jpg-изображения без поддержки jpg в OpenCV. [Здесь] (http://stackoverflow.com/a/12854400/2436175) вы найдете пример того, как проверить правильность загрузки изображения. – Antonio

ответ

0

Это потому, что оценкаTransform() не может сшить все изображения, которые вы предоставили. Вы можете проверить, сколько изображений было сшито с помощью Stitcher :: component(), оно возвращает вектор ints, размер которого является вашей целью. Следовательно, в вашем случае его размер должен быть 2, если сшивание было успешным.