如何将文件夹中的所有图像加载到图像缝合javacv

时间:2013-06-21 07:52:12

标签: opencv javacv

Stitcher stitcher = Stitcher.createDefault(false);
MatVector images = new MatVector(4);
images.put(0,cvLoadImage("1.jpg"));
images.put(1,cvLoadImage("2.jpg"));
images.put(2,cvLoadImage("3.jpg"));
images.put(3,cvLoadImage("4.jpg"));

这将正确拼接图像。你能给我一些想法,一次性将文件夹中的所有图像加载到matvector吗?

我试过这个:

File actual = new File("image path");
File list[] = actual.listFiles();
MatVector images = null; 
    for(int i=0; i<list.length; i++){


        new MatVector(list.length);

        images.put(i,cvLoadImage(""));


    }  

但它返回空值。谢谢。

2 个答案:

答案 0 :(得分:0)

我正在使用此代码:

for (int i=0; i<numOfPics; i++){
  images.put(i,cvLoadImage(imageNames[i]));
}

其中numOfPics是我拥有的计数器,每次拍照都会增加。 imageNames是一个String数组,我保存图片的完整名称(带文件夹),例如:

"/storage/sdcard0/Download/testpicture.JPG"

答案 1 :(得分:0)

当您逐个加载图片时,您编写了images.put(0,cvLoadImage("1.jpg"));

但是当你把它放在&#34; For&#34;循环,你写了

images.put(i,cvLoadImage(""));

错误可能发生在循环中,因为您没有指定图像的扩展名。我的意思是你没有在循环中添加.jpg。

尝试做类似

的事情
images.put(i,cvLoadImage(i+".jpg"));

看看会发生什么。