2016-01-15 17 views
5

Tôi có một chức năng trong dự án của tôi mà có thể làm khâu, các chức năng đang làm việc tốt, nó rất đơn giản:opencv khâu với dll miễn phí

Mat output(m_Img, true), pano; // a panaoramic image 

    bool try_use_gpu = true; 
    Stitcher iSticher = Stitcher::createDefault(try_use_gpu); 
    // Set Feature finder to be ORB 
    iSticher.setFeaturesFinder(new detail::OrbFeaturesFinder()); 

    try{ 

     Stitcher::Status status = iSticher.stitch(Imgs, pano); 
     if (status != Stitcher::OK) 
     { 
      LOG("Error stitching - Code: %d", int(status)); 
      return -1; 
     } 
    } 
    catch(exception e) 
    { 
     LOG("Cannot Stitch Image,%s",e.what()); 
    } 

Mã này hoạt động tốt và tôi đã có thể ghép ảnh khá tốt. Vấn đề duy nhất là khi tôi muốn triển khai mã của tôi, tôi nhận ra rằng tôi phải sử dụng dll không miễn phí. Nếu không, .exe sẽ không chạy. Câu hỏi của tôi là: để sử dụng Stitcher lớp từ opencv, điều đó có nghĩa là bạn phải trả tiền, ngay cả khi bạn không sử dụng các thuật toán SURF hoặc SIFT? Có cách nào để làm điều đó mà không sử dụng "dll không miễn phí"? Lưu ý: Tôi đang sử dụng opencv 2.4.2. Chỉnh sửa: Tôi cũng đã thử nghiệm nó với OpenCV 2.4.11

+0

Bạn không sử dụng DLL miễn phí nào? –

+0

@KyryloPolezhaiev, theo như tôi biết chỉ có một non-free.dll. Tuy nhiên, nếu bạn hỏi về các chức năng không tự do, tôi không sử dụng bất kỳ chức năng phi ngoại tuyến nào, nó chỉ là mã ở đây trong câu hỏi ... – Samer

+0

Dường như bạn không cần triển khai 'opencv_nonfree.dll',' opencv_stitching. dll' thay thế. Bạn đã sử dụng SIFT hoặc SURF ở nơi khác? Hay bạn đã liên kết với 'opencv_nonfree.lib' một cách rõ ràng trong dự án của bạn? – herohuyongtao

Trả lời

1

Vì vậy, sau nhiều lần đào. Tôi nghĩ rằng tôi đã tìm thấy một giải pháp cho vấn đề này: Có một lá cờ trong opencv_modules.hpp gọi: HAVE_OPENCV_NONFREE Nếu bạn undefine hoặc nhận xét định nghĩa của lá cờ này và xây dựng opencv từ nguồn thì đây sẽ khắc phục vấn đề này, tức là opencv_stitching.dll sẽ không depeneds trên opencv_non-free.dll

Các vấn đề liên quan