2013-02-22 4 views
1

Я делаю стежки на два изображений, и имею эту ошибку во время отладки (компиляция успешно, но при запуске он ломает):OpenCV Assertion Ошибка в Строчке

Assertion не удался == CV_8Uc3> в неизвестной функции.

А вот код:

int main(int argc, char ** argv) 
{ 
    Mat im1=imread("panorama_image1.jpg", CV_LOAD_IMAGE_GRAYSCALE); 
    Mat im2=imread("panorama_image2.jpg", CV_LOAD_IMAGE_GRAYSCALE); 

    Mat result; 
    vector<Mat> imgs; 
    imgs.push_back(im1); 
    imgs.push_back(im2); 
    cv::Stitcher stitcher=cv::Stitcher::createDefault(false); 
    stitcher.stitch(imgs,result); 

    namedWindow("Mosaic", CV_WINDOW_AUTOSIZE); 
    imshow("Mosaic",result); 
    waitKey(0); 

    return 0; 
} 

Я не смог найти ошибку в этом коде. А библиотеки компоновщика правильно (использование D версии, такие как opencv_core244d.lib, opencv_stitching244d.lib и т.д.

+0

Может быть функция 'stitcher.stitch (imgs, result); 'ожидает входные изображения типа ** 8 бит, 3 канала **. Попробуйте загрузить изображения как цветные. – sgarizvi

+0

Я не уверен, но ввод в строчку должен быть полутоновой вправо? Обычно проще сшить полутоновых изображений, и код отлично работает на Ubuntu. У меня проблема с Windows и Visual Studio 2010. –

ответ

1

sgarizvi Я думаю, что это правильно, загрузка в цвете решил аналогичную проблему для меня:

Mat im1=imread("panorama_image1.jpg", CV_LOAD_IMAGE_COLOR); 
Mat im2=imread("panorama_image2.jpg", CV_LOAD_IMAGE_COLOR); 
Смежные вопросы