トップページ > 記事閲覧
opencvからの画像表示
名前:みつひろ 日時: 2014/04/13 15:35

opencvからの画像表示が、過去ログにあった DXライブラリ的に一番高速に描画するプログラムサンプルに沿ったプログラムでDxLib3.10e以降のバージョンで表示されない現象を確認しましたのでご報告します。 opencv-2.20 2.4.8で確認しました。
メンテ

Page: 1 |

Re: opencvからの画像表示 ( No.1 )
名前:管理人 日時:2014/04/13 17:30

ご報告ありがとうございます 当時より BASEIMAGE 構造体のメンバー変数が増えたので、ローカル変数として宣言した BASEIMAGE 構造体のサンプルプログラムで値を初期化していないメンバー変数に不定な値が 入ってしまって CreateGraphFromBaseImage が失敗していました BASEIMAGE 構造体をゼロで初期化することで正常に動作するようになりましたので、 よろしければお試しください m(_ _)m #include <cv.h> #include <highgui.h> #include <ctype.h> #include <string.h> #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { CvCapture *capture ; IplImage *image ; int GrHandle ; BASEIMAGE BaseImage ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // DXライブラリ初期化処理 if( DxLib_Init() == -1 ) return -1; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // カメラからのビデオキャプチャを初期化する capture = cvCreateCameraCapture( 0 ) ; // BASEIMAGE 構造体を0で初期化 memset( &BaseImage, 0, sizeof( BASEIMAGE ) ) ; // カラーフォーマットは変化しないので最初に設定 CreateFullColorData( &BaseImage.ColorData ) ; // ミップマップではないので0 BaseImage.MipMapCount = 0 ; // 空のグラフィックハンドルの値を初期化 GrHandle = -1 ; // メインループ while( ProcessMessage() == 0 ) { // フレームを取得 image = cvQueryFrame( capture ) ; // BASEIMAGE の要素を埋める BaseImage.GraphData = image->imageData ; BaseImage.Width = image->width ; BaseImage.Height = image->height ; BaseImage.Pitch = image->widthStep ; // グラフィックハンドルを作成しているかどうかで処理を分岐 if( GrHandle == -1 ) { // 最初の場合はグラフィックハンドルの作成と映像の転送を一度に行う GrHandle = CreateGraphFromBaseImage( &BaseImage ) ; } else { // 2回目以降はグラフィックハンドルへ映像を転送 ReCreateGraphFromBaseImage( &BaseImage, GrHandle ) ; } // フレームの内容を画面に描画 DrawGraph( 0, 0, GrHandle, FALSE ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // ビデオキャプチャの後始末 cvReleaseCapture( &capture ) ; // DXライブラリ使用の終了処理 DxLib_End() ; // ソフトの終了 return 0 ; } ( 過去ログの方も修正しておきました )
メンテ
Re: opencvからの画像表示 ( No.2 )
名前:みつひろ 日時:2014/04/13 18:13

素早い回答ありがとうございます。 教えて頂きました対処法で表示させることができました! 素晴らしいライブラリをありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存