![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VC++にてOpenCVを使い画像処理を行っている者です。
処理後の画像をMFCで作成したPictureBoxに表示したいのですが、
IplImageからBmpへの変換がうまくいきません。
//---------------------------------------------------------------
IplImage *img;
img = cvLoadImage(filename, 0); // 0: グレイスケールで読み込む
cvThreshold(img,img, 70, 255, CV_THRESH_BINARY_INV);//二値化
char* ColorBuf = (char*)calloc( sizeof(char), img->width * img->height * 4 );
for( int y = 0; y < img->height; y++ ) {
for( int x = 0; x < img->width; x++ ) {
ColorBuf[ y * img->width * 4 + x * 4 + 0 ] =
img->imageData[ y * img->widthStep + x * 3 + 0 ];
ColorBuf[ y * img->width * 4 + x * 4 + 2 ] =
ColorBuf[ y * img->width * 4 + x * 4 + 1 ]=
ColorBuf[ y * img->width * 4 + x * 4 + 0 ];
}
}
mbmp.CreateBitmap( img->width, img->height, 1, 32, ColorBuf );
free( ColorBuf );
((CStatic*)GetDlgItem( IDC_IMGSRC ))->SetBitmap ( mbmp );
cvReleaseImage( &img );
}
//---------------------------------------------------------------
今はPictureBoxに3つ縦に画像が表示されてしまってます。
何か改善点などがありましたらよろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ColorBuf[ y * img->width * 4 + x * 4 + 0 ] =
img->imageData[ y * img->widthStep + x * 3 + 0 ];
ここが違いますよ
グレースケールなので チャンネル(プレーン)は1つしかありません
したがって
ColorBuf[ y * img->width * 4 + x * 4 + 0 ] =
img->imageData[ y * img->widthStep + x + 0 ];
といった具合に『 * 3 』を除去しましょう
定数でハードコードするより
img->imageData[ y * img->widthStep + x * img->nChannels + 0 ]
などした方がわかりやすいかも ・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- PHP PHP echo バックスラッシュの使い方 img要素 2 2023/01/08 22:46
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- HTML・CSS imgとpを縦・横に中央揃えする 1 2023/01/17 11:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【OpenCV】二値画像後、白の部...
-
透過pngの透明部分以外をクリッ...
-
「画像クリックで音声再生」を ...
-
画面が真っ白になるのはどうして?
-
JavaScriptでの画像切り替えを...
-
JSPでの画像ファイル表示
-
textareaに画像を表示したい
-
フッター上部に謎の隙間
-
JavaScriptにて『var val2 = "d...
-
jQueryでシンプルドラッグドロ...
-
重なった画像にクリックイベン...
-
サイトにコンテンツを並べる際...
-
Dreamweaverでimageのロールオ...
-
C言語のポインタ表現
-
WEBページ立ち上げ時に1回のみ...
-
【html5】canvasでの文字の形の...
-
bxsliderで最初に縦に複数表示...
-
jQueryでサーバー上のファイル...
-
createElementで作成した要素を...
-
1枚の画像をクリックすると複数...
マンスリーランキングこのカテゴリの人気マンスリー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の画像表示は特別なこと...
おすすめ情報