当前位置: 首页 > 知识库问答 >
问题:

JavaCV缝合

孟子墨
2023-03-14

我正在尝试使用JavaCV 0.1和Java中的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版本的代码在当前配置上运行没有问题

在缝纫机中。缝合方法opencv引发断言异常,如“k==MAT”。我该如何解决这个问题?MatVector在这个示例代码中的用法正确吗?

谢谢

共有1个答案

习淇
2023-03-14

我找到了,这是一个与JavaCv相关的bug。

实际上,贾瓦夫是无罪的。OpenCV缝合器API使用cv::OutputArray返回缝合的图像,但此方法在执行时将cv::Output数组强制转换为cv::Mat。JavaCV仅通过使用参数接口来移植OpenCV方法,因此它将参数转换为std::vector,这将导致断言失败。

需要将std::vector转换为Mat才能正常工作。我不知道这种转换还有其他方法,但除此之外,只有lib的作者可以修复它。

据说c版本正在工作,但事实上,当pano参数被指定为cv::Mat时,它正在工作,当输入std::vector时,它再次给出相同的失败断言。

 类似资料:
  • JavaCV 提供了在计算机视觉领域的封装库,包括:OpenCV、ARToolKitPlus、libdc1394 2.x 、PGR FlyCapture和FFmpeg。此外,该工具可以很容易地使用Java平台的功能。 JavaCV 还带有硬件加速的全屏幕图像显示(CanvasFrame),易于在多个内核中执行并行代码(并行),用户友好的几何和色彩的相机和投影仪校准(GeometricCalibra

  • 网上找一个 csdn 靠谱的, 但是要收费, 不想开 csdn 会员; 哪个大佬有免费的 javacv 的资料啊, 不要视频, 初学, 想要系统的学习 javacv

  • 问题内容: 我正在尝试学习JavaCV。众所周知,缺乏关于这一主题的教材是一个很大的问题。在JavCV主页上,他们在“ OpenCV CookBook”书中提供了许多C 示例的示例。但是情况是,它们不是Java,而是在SCALA中!!!现在我已经疯了!我知道网络上有很多示例,但是我想从头开始学习它,那么只有我才能正确地做。“ OpenCV CookBook”是一本非常不错的书,但它全都涉及C 中的

  • 我试图使用JavaCV从我的webcamera.but捕获快照,当我运行下面的代码时,我得到了一个执行。它说找不到com/googlecode/javacpp/Pointer类。我能做些什么来解决这个错误... 例外

  • 下面是代码片段: 如果有人告诉我出了什么事,我将不胜感激。提前感谢您的帮助。

  • 我必须将IplImage转换为BufferedImage…对我来说,一个简单的任务变得非常复杂。我正在Mac OSX上使用JavaCv 1.0(它与OpenCV 3.0链接)。 在旧的JavaCV API中有IplImage方法#GetBuffereImage,但我在新的1.0 API中再也找不到它了。所以我试着把IplImage转换成字节数组,把字节数组转换成BufferedImage。我发现这