

画像複数枚を同時にvecファイルにしようとするとエラーをはいたので  
1枚ずつ複数の画像をcreatesamplesを用いてvecファイルを作成しました．

しかし最終的にカスケード分類器を生成するとき，複数のvecファイルを扱う場合  
どのようにしたらいいのでしょうか？

vecファイルを１つに統合したり，同時入力などができるのでしょうか？  
初心者なので教えていただきたいです．

### 補足

現在MacBookでhomebrewを用いてOpenCV3を導入しています．  
プログラムで正解画像のリストをテキストファイルで作成し，  
createsamplesで一斉にvecファイルにしてしまおうと考えました．

ターミナルで

[code]

    $ opencv_createsamples -info pos.txt -vec pos.vec -num 89 -w 24 -h 24
    
[/code]

と入力したところ，(ファイル内の画像数は89)

[code]

    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 && 
    
[/code]

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

[code]

    libc++abi.dylib: terminating with uncaught exception of type cv::Exception: 
    
[/code]

/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には  
名前 数量 画像のサイズ(始点から終点)というふうに記入しています．

[code]

    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
    
[/code]

何が原因でエラーが起きているのかがわかりませんが，  
１つ１つならcreatesamplesが使えたため上記のように  
複数のvecファイルを使う方法を伺いました．

よろしくお願いします．


CC BY-SA 3.0
2017-08-16T15:51:14.073
37255
2017-08-19T13:08:07.197
2017-08-19T13:08:07.197
24909
24909
question
opencv
vecファイルが複数存在する際のカスケード生成