0

私のプログラムは、ベクトル反復の実行時エラーを私に与えます。以下は私のコードです

for (i = 0; i != num_img; ++i)
{
    tmp_img = imread( files[i], 0 ); // load in grayscale.
    resize( tmp_img, tmp_dst, tmp_dst.size() );
    Mat row_img = tmp_dst.reshape( 1, 1 ); // get a one line image.
    row_img.convertTo( training_mat.row(i), CV_32FC1 );
    labels.at< float >(count, 0) = (count<nb_cars)?1:-1; // 1 for car, -1 otherwise*/
}

行ごとにチェックするとtmp_img、ループ内のエラーが表示されます。これはエラー ここに画像の説明を入力 であり、いつかはその エラーですここに画像の説明を入力

4

3 に答える 3

0

イテレータを使用してみてください。それらは範囲内にとどまるのに役立ちます。

int count = 0;
vector<string>::const_iterator i;
for (i = files.begin(); i != files.end(); ++i){
{
    tmp_img = imread( *i, 0 ); // load in grayscale.
    resize( tmp_img, tmp_dst, tmp_dst.size() );
    Mat row_img = tmp_dst.reshape( 1, 1 ); // get a one line image.
    // copy line and convert to float
    row_img.convertTo( training_mat.row(count), CV_32FC1 );
    labels.at< float >(count, 0) = (count<nb_cars)?1:-1; // 1 for car, -1 otherwise*/
    ++count;
}
于 2013-08-03T17:40:59.600 に答える