2013-02-22 50 views
1

我對兩幅圖像拼接做,並且有這個錯誤在調試(編譯成功,但運行時它打破):OpenCV的斷言錯誤的拼接

斷言失敗== 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.libopencv_stitching244d.lib

+0

可能是功能'stitcher.stitch (imgs,result);'輸入** 8位,3個通道**的輸入圖像。嘗試將圖像加載爲彩色。 – sgarizvi 2013-02-22 06:43:41

+0

我不確定,但輸入到針跡的灰度應該是正確的嗎?通常它更容易針跡灰度圖像,並且代碼在Ubuntu上完美運行,在Windows和Visual studio 2010中我遇到了問題。 – 2013-02-22 18:06:24

回答

1

我覺得sgarizvi是正確的,裝在色彩解決了我一個同樣的問題:

Mat im1=imread("panorama_image1.jpg", CV_LOAD_IMAGE_COLOR); 
Mat im2=imread("panorama_image2.jpg", CV_LOAD_IMAGE_COLOR);