opencvの画像データを格納する構造体IplImageについて質問です。
今opencvを用いて画像処理をしていて、test1とtest2という画像データを宣言して
test1からは横:縦が640:512の画像を読み込みます。
そして、IplImageの中のImageDataにアクセスし、test2のImageDataにtest1のImageDataを
各ピクセルに代入して、test2という画像データをウィンドウに表示させたいと思ってます。
私的にはtest1とtest2には同じ画像データが表示されると考えているのですが、実際に実行してみると
少し違う画像が表示され、次のようなエラーが表示されます。
「"0x7c951909"の命令が"0xfffffff8"のメモリを参照しました。メモリが"read"になることはできませんでした。」
実際にCの中では以下のようにプログラムを組んでいます。
for(i=0;i<test->height;i++){
for(j=0;j<test->widthStep;j++){
*(test2->imageData+test2->widthStep*i+j)=*(unsigned char *)(test->imageData+i*test->widthStep+j);
}
}
何が原因なのか教えていただけないでしょうか。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
cvCreateImage でtest2の確保はできてますか?
IplImage *test1 = cvLoadImage("foo.bmp",CV_LOAD_IMAGE_UNCHANGED);
/* test1と同じサイズ、深さ、チャンネルでtest2を作成 */
CvSize sz ;
sz.width=test1->width;
sz.height=test1->height;
IplImage *test2 = cvCreateImage( sz, test1->depth, test1->nChannels ) ;
/* せっかくcvCopyがあるから使う */
cvCopy( test1,test2, NULL ) ;
この回答への補足
早速の回答ありがとうございます。
test2に関しては以下のように確保しています。
test2=cvCreateImage(cvSize(test1->width,test1->height),IPL_DEPTH_8U,1)
一応cloneも試してみます。
No.2
- 回答日時:
だとすると、そのパラメータがtest1とあっているか確認してみてください。
見た目は8bit1チャンネルのグレースケールだけど、実際には8bit3チャンネルでR=B=Gになっているからグレースケールにみえる、ということもありますし
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- HTML・CSS ブロックエディターで作りつつ、画像を挿入しつつ、画像にスタイルシートのコードを付ける方法はありますか 1 2022/08/23 18:46
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- Excel(エクセル) エクセルで対象日に該当するデータがある場合に別表へ全対象者を表示させたい。 3 2023/07/12 09:48
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- C言語・C++・C# ポインタの型変換、どうやるんでしたっけ? 2 2022/03/28 11:00
- JavaScript [再掲]指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードについて 1 2023/05/10 15:09
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
protectedなのにアクセスできな...
-
PHP正規表現の難題・preg_repla...
-
VBA コレクションに2次元配列...
-
number_formatが勝手に四捨五入
-
PHPで呼び出し元の関数名の取得...
-
既存関数の上書き
-
エラーの理由が分りません。Pri...
-
DMMの動画を全件取得したのです...
-
Yahoo! JAPAN IDを新規取得でき...
-
Dosブロンプトでtabを出力したい
-
フォームを使わずにPOST送信す...
-
アクセスの度にIPアドレスを変...
-
【C#】DataGridViewの最大列数...
-
ローカルのコンピュータ名を取...
-
【C#】FindWindowExの使い方を...
-
先日NISAの投資信託で、初めて...
-
初歩的な質問だと思います。IF...
-
Parse error というエラーの対...
-
バッチファイルで、全てのウィ...
-
IEを使わないでhtmlテキストを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Let's Encryptで自動更新がされ...
-
VBA コレクションに2次元配列...
-
VB.NETからVBAマクロ(引数)を呼...
-
エラーの理由が分りません。Pri...
-
PHP、ヒアドキュメント内でのIF...
-
PHPでの画像の形式の変換
-
CSVファイルをブラウザのキャッ...
-
可変変数にアロー演算子を使いたい
-
次のhtml・cssでspan内の文字を...
-
VB.NETSystem.Xml 要素数を得る...
-
どういうプログラムを関数化を...
-
ExcelVBAで部分一致(*)をしたい
-
PHPの変数値をリンクさせたい
-
file_existsが動作しない
-
protectedなのにアクセスできな...
-
PHPプログラム上で「URLを直接...
-
ASPのResponse.WriteをPHPでは...
-
PHPでXMLの置換 replaceData
-
[C#]Arraylistに追加した構造体...
-
[C++]std:mapの扱いを教えて頂...
おすすめ情報