- ベストアンサー
配列のエラーが出る(opencv)
- 配列のエラーが出て困っています。
- ルックアップテーブルを作成している際にエラーが発生しています。
- 調査しても解決策が見つからず困っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず, 配列の添え字が想定した範囲にあるかどうか確認してみてはどうでしょうか. と書いておくけど, ・for(int j = 0; j <680 ; j++) は明らかに変 とか ・実は S や V は 255 まであり得る とかいうオチだったりして. あと, #1 を素直に受け取るなら添え字は ( i * image5->width + j) * 3 + 0 よりも i * image5->widthStep + j * 3 + 0 の方が自然じゃないだろうか.
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
関係ないかもしれんけど cvCvtColor(image3, image5, CV_BGR2HSV); IplImage* image5 = cvCreateImage(cvSize(640, 480), IPL_DEPTH_8U, 3); の部分, 何を期待しているんだろう.
補足
こちらのミスです.反対に書いてしまいました. 指摘ありがとうございます.
- kmee
- ベストアンサー率55% (1857/3366)
http://opencv.jp/opencv-1.1.0/document/opencvref_cxcore_basic.html#decl_IplImage > int widthStep; /* アライメントが調整された画像の行のバイトサイズ */ ということで、widthStepまでチャンネル数倍する必要はありません
補足
ありがとうございます. widthStepのところをwidthに変更してみたのですが,途中までうまくいっているのですが,止まるってしまいました.『○○○の 0x000000013f2c6f69 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0xffffffffffffffff を読み込み中にアクセス違反が発生しました。』というエラーがまた出てきます. よろしければ,回答よろしくお願いします. if((LUT[(unsigned char)(image5->imageData[( i * image5->width + j) * 3 + 0])] [(unsigned char)(image5->imageData[( i * image5->width + j) * 3 + 1])] [(unsigned char)(image5->imageData[( i * image5->width + j) * 3 + 2])]) == 1){
お礼
回答ありがとうございました. HSVのところを256に変更してみたら,エラーなく動かすことができました!助かりました!