vecファイルが複数存在する際のカスケード生成
画像複数枚を同時にvecファイルにしようとするとエラーをはいたので
1枚ずつ複数の画像をcreatesamplesを用いてvecファイルを作成しました.
しかし最終的にカスケード分類器を生成するとき,複数のvecファイルを扱う場合
どのようにしたらいいのでしょうか?
vecファイルを1つに統合したり,同時入力などができるのでしょうか?
初心者なので教えていただきたいです.
補足
現在MacBookでhomebrewを用いてOpenCV3を導入しています.
プログラムで正解画像のリストをテキストファイルで作成し,
createsamplesで一斉にvecファイルにしてしまおうと考えました.
ターミナルで
$ opencv_createsamples -info pos.txt -vec pos.vec -num 89 -w 24 -h 24
と入力したところ,(ファイル内の画像数は89)
Info file name: pos.txt
Img file name: (NULL)
Vec file name: pos.vec
BG file name: (NULL)
Num: 89
BG color: 0
BG threshold: 80
Invert: FALSE
Max intensity deviation: 40
Max x angle: 1.1
Max y angle: 1.1
Max z angle: 0.5
Show samples: FALSE
Width: 24
Height: 24
Create training samples from images collection...
OpenCV Error: Assertion failed (rect.width >= 0 && rect.height >= 0 &&
rect.x < image->width && rect.y < image->height && rect.x + rect.width >= (int)
(rect.width > 0) && rect.y + rect.height >= (int)(rect.height > 0)) in
cvSetImageROI, file /Users/_____/Desktop/opencv-2.4-
2.9/modules/core/src/array.cpp, line 3006
libc++abi.dylib: terminating with uncaught exception of type cv::Exception:
/Users/_____/Desktop/opencv-2.4-2.9/modules/core/src/array.cpp:3006: error:
(-215) rect.width >= 0 && rect.height >= 0 && rect.x < image->width && rect.y <
image->height && rect.x + rect.width >= (int)(rect.width > 0) && rect.y +
rect.height >= (int)(rect.height > 0) in function cvSetImageROI
画像いっぱいいっぱいに判別したいものが写っている画像を用いているためpos.txtには
名前 数量 画像のサイズ(始点から終点)というふうに記入しています.
1.jpg 1 0 64 64 0
2.jpg 1 0 64 64 0
3.jpg 1 0 64 64 0
4.jpg 1 0 64 64 0
5.jpg 1 0 64 64 0
何が原因でエラーが起きているのかがわかりませんが,
1つ1つならcreatesamplesが使えたため上記のように
複数のvecファイルを使う方法を伺いました.
よろしくお願いします.