2013-06-21 3 views
0
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?как загрузить все изображения в папку с изображением стежка javacv

Я попытался это:

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("")); 


    } 

но он возвращает нулевые значения. Спасибо.

+0

это дает исключение ошибок в потоке "основного" java.lang.NullPointerException \t в UWU_CST_09_0039.UniversityProject.ImageStitching.main (ImageStitching.java:42) Java 42 является: images.put (я, cvLoadImage ("")); – user2294002

+0

Это действительно вопрос о серебре. Не могли бы вы дать какое-либо представление об этом. – user2294002

ответ

0

Я делаю это с этим кодом:

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

где numOfPics это счетчик, который у меня есть, и каждый раз, когда я фотосъемка увеличивается. imageNames является массивом строк, где я сохранить полное название картины (с папкой), например:

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

при загрузке изображений по одному Вы писали images.put(0,cvLoadImage("1.jpg"));

но когда вы положили его в «Для» цикла, вы писали

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

ошибка, вероятно, произошло в цикле, так как вы не указали расширение изображения. Я имею в виду, что вы не добавили .jpg в цикл.

пытаются сделать что-то вроде

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

и посмотреть, что происходит.