お世話になっております。
OpenCVのエラーが解決せず困っています。
グレースケール画像170×170を
11×11枠のウィンドウで画像処理をして行きたいのですが
変数 x の2回目のループでエラーが発生してしまいます。
「型 'System.Runtime.InteropServices.SEHException' のハンドルされていない例外が
sample.exe で発生しました
追加情報: 外部コンポーネントが例外をスローしました。」
ROIの入れ物 dst_img をリセットしてみたり
あれこれやってみたのですがどうもうまくいきません。
2回目でコケるというのも情けなく。
どこを修正すればいいか、ぜひアドバイスいただけたら助かります。
よろしくお願い致します。
dst_img = cvCreateImage(cvSize(11,11), IPL_DEPTH_8U, 1);
int x, y, i;
i = 1;
for (y = 0; y < src_img_gray-> height; y = y +11*(i-1)+1) // y 座標を 11ピクセルずつ進める
{
for (x = 0; x < src_img_gray->width; x = x + 11*(i-1)+1) // x 座標を 11ピクセルずつ進める
{
dst_img = cvCreateImage(cvSize(12, 12), IPL_DEPTH_8U, 1);
cvSetImageROI(dst_img, cvRect(y, x, 11, 11));
//出力先指定
↓xの2ループ目で、ここでエラーが発生します。
out_img = cvCloneImage(dst_img);
cvReleaseImage(&dst_img);
i = i + 1;
}
}
cvDestroyWindow("ROI");
No.2ベストアンサー
- 回答日時:
そうではありません。
x=x+23
ということは、現在のxに+23したものが、次のxになります。
iの変化が、i=i+1だけだとすると
ループ開始
x=0
終了直前
i=i+1 /* i=1+1=2 になる */
forの式3の評価
x=x+11*(i-1)+1
/* x= 0 + 11*(2-1)+1 =0+12=12になる */
次のループ開始
x=12
終了直前
i=i+1 /* i=2+1=3 になる */
forの式3の評価
x=x+11*(i-1)+1
/* x= 12 + 11*(3-1)+1 =12+23=35になる */
...
となっています。
よく見たら、いろいろと間違ってますね。
cvSetImageROI(dst_img, cvRect(y, x, 11, 11));
は、 dst_img の 横y,縦xの位置から11x11のROIを設定して、以降、cvClomeImage(dst_img)等としたときに、dst_imgが、そのROIで指定した範囲だけの画像のように扱われる、というものです。
2回目では、x=12なので「 dst_img = cvCreateImage(cvSize(12, 12), IPL_DEPTH_8U, 1); で確保した 12x12(横0~11,縦0~11)の画像dst_img」の 座標(0,12)から11x11画素を抜き出した画像、という意味になるので、エラーになるのも当り前です。
コメントありがとうございます。
そもそも、ROIで元画像のサイズそのものを指定するべきだったのですね。
細かく見てすぐにアドバイスくださって、いつも本当にありがとうございます。
今回も大変助かりました。
またぜひよろしくお願い致します。
No.1
- 回答日時:
これが原因かはわかりませんが
http://opencv.jp/opencv-2.1/c/basic_structures.h …
説明になんと書いてありますか?
> x = x + 11*(i-1)+1) // x 座標を 11ピクセルずつ進
そうなってますか?
x,yの値を追ってみましょう
例えば
i=3 だと
x = x+11*2+1
で, +23
されてますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- PHP PHP echo バックスラッシュの使い方 img要素 2 2023/01/08 22:46
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- Perl 画像が表示でnull; this.src 1 2022/04/19 11:31
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptで変更した属性の元...
-
ダイアログから画像ファイルは...
-
画像が表示でnull; this.src
-
複数画像のランダム複数表示(...
-
imageクラスからiconクラスに変...
-
外部javascriptの重複を防ぐには
-
毎日違う画像を表示させるには
-
MFCで画像を表示させているので...
-
jqueryスライドショーをストッ...
-
html内にスライドショーを複数設置
-
HTMLからimgのsrcのみを正規表...
-
MAX関数を使ってからLEFT JOIN...
-
前回の質問の続き
-
textareaに画像を表示したい
-
Javascriptで画像を水面のよう...
-
c++std::string型をTCHARに変換...
-
createElementで作成した要素を...
-
スクロール可能なチェックボックス
-
Slick.jsのオプションrtlについて
-
removeEventListenerについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptで変更した属性の元...
-
MFCで画像を表示させているので...
-
【OpenCV】二値画像後、白の部...
-
外部javascriptの重複を防ぐには
-
Vb.net2005での画像の合成方法
-
pythonで、tkinterとpillowの組...
-
html内にスライドショーを複数設置
-
ラズパイでno module named zbar
-
libjpegライブラリの使い方につ...
-
リンク先を動的に変更する
-
外部ファイルにしたら文字化け...
-
プログラムの上手な書き方は?
-
複数画像のランダム複数表示(...
-
error LNK2019 未解決のシンボ...
-
pythonのpygameでキャラクター...
-
imgボタンにfocusの当て方
-
OpenCVで固定枠で画像を操作す...
-
(javascript)HTMLで指定した...
-
<noscript>と</a>の関係
-
nodejsの画像表示は特別なこと...
おすすめ情報