gpt4 book ai didi

opencv - JavaCV拼接

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:09 25 4
gpt4 key购买 nike

我正在尝试通过在 Java 中使用 JavaCV 0.1 和 OpenCV 2.4.0 来拼接多个图像,我使用此代码来拼接图像:

stitcher = Stitcher.createDefault(false);

MatVector images = new MatVector(imageN.size());
for(...){
CvArr image = cvLoadImage(imageN);
images.put(index,image);
}

MatVector result = new MatVector(1);
int status = stitcher.stitch(images,result);

if( status == stitcher.OK )
{
cvSaveImage(result.getIplImage(0));
}

注意1:本例中加载的图片是拼接的有效图片。

注意 2:C++ 版本的代码在当前配置下运行没有问题

在 stitcher.stitch 方法中,opencv 抛出断言异常,例如“k == MAT”。我应该如何解决这个问题?此示例代码中的 MatVector 使用是否正确?

谢谢...

最佳答案

找到了,是JavaCv相关的bug。

其实 JavaCv 是无罪的。OpenCV stitcher API 使用 cv::OutputArray 返回拼接图像,但此方法在执行时将 cv::OutputArray 转换为 cv::Mat。 JavaCV仅通过参数接口(interface)移植OpenCV方法,因此将参数转换为std::vector,导致断言失败。

需要将 std::vector 转换为 Mat 才能使其正常工作。我不知道这种转换是否存在任何其他方式,否则只能由 lib 的作者修复。

据说 c++ 版本可以工作,但实际上,当 pano 参数作为 cv::Mat 给出时,它可以工作,当输入 std::vector 时,它再次给出相同的失败断言。

关于opencv - JavaCV拼接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11133660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com