opencvでの画像ファイルへのアクセス

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
イナバ

opencvでの画像ファイルへのアクセス

#1

投稿記事 by イナバ » 14年前

IplImage *img_check; // 画像変数宣言

for(i = 0; i <= 99; i++){

img_check = cvLoadImage("img_%01d.jpg");

for(y = 0; y < img_check->height; y++){
for(x = 0; x < img_check->width; x++){
uchar b = img_check->imageData[img_check->widthStep * y + x * 3];
uchar g = img_check->imageData[img_check->widthStep * y + x * 3 + 1];
uchar r = img_check->imageData[img_check->widthStep * y + x * 3 + 2];

if (r == 0 && g == 0 && b == 255) {
p++;
break;
}
}
}
}

画像ファイルimg_0~99(mg_%01d.jpg)全てに対してimg_check変数を上書きし続けて
指定ピクセルへアクセスして画素値が(0,0,255)に当たれば
それをカウントするプログラムを製作しています。

実行しようとすると
「0xC0000005: 場所 0x0000002c を読み込み中にアクセス違反が発生しました。」とアクセス違反が出てしまいます。
どうすればいいでしょうか?

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: opencvでの画像ファイルへのアクセス

#2

投稿記事 by beatle » 14年前

cvLoadImage()はprintfみたいに整形してはくれませんので,"img_%01d.jpg"という名前のファイルを探しに行ってしまいます.当然そんなファイルは無いでしょうから,画像が読み込めずエラーになるのです.
sprintf()という標準関数を調べてみてください.

それから,ソースコードを貼り付けるときは,codeタグを使って下さい.投稿する前に必ずプレビューして下さい.

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: opencvでの画像ファイルへのアクセス

#3

投稿記事 by h2so5 » 14年前

不要になった画像はcvReleaseImageで解放していかないと、
どんどんメモリを食いますから注意してください。

閉鎖

“C言語何でも質問掲示板” へ戻る