2012-03-06 16 views
-1

私は背景画像は、Windowsフォームで画像を表示することに成功している表示するには、「関数imwrite」を使用しますが、それは、ディスクに損傷を与える:opencv C++:WindowsフォームアプリケーションでWebcamキャプチャを表示するには?

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) 
{ 
    namedWindow("video",0); 
    VideoCapture cap(0); 
    flag = true; 
    while(flag){ 
     Mat frame; 
     cap >> frame; // get a new frame from camera 
     **imwrite("vdo.jpg",frame);** 
     this->panel1->BackgroundImage = System::Drawing::Image::FromFile("vdo.jpg");           
     waitKey(5); 
     delete panel1->BackgroundImage; 
     this->panel1->BackgroundImage = nullptr; 
    } 
} 

私は文句を言わないここで働い「ビットマップ」を関数imwriteせずに表示し、使用しようとしています出典:

this->panel1->BackgroundImage = System::Drawing::Bitmap(frame); 

私のコードに何か問題がありますか?助けてくれてありがとう:)))

+1

「それ文句を言わない仕事」であります問題の説明ではありません –

+0

[Windows Formアプリケーションでcv :: Matを表示する方法は?](http://stackoverflow.com/questions/9580397/how-to-display-a-cvmat-in-a -windows-form-application) – mevatron

答えて

0

ビットマップのコンストラクタは、クラスのMatをパラメータとして直接使用しないためだと思います。 自分でOpenCVのマットからに.NETビットマップデータを変換する必要があります:)

0

あなたがこの(別の代替)が必要になる場合があります画像を表示するために、

pictureBox1->Image = gcnew //replacement of cvShowImage 

System::Drawing::Bitmap(Img->width, Img->height, Img->widthStep, 

System::Drawing::Imaging::PixelFormat::Format24bppRgb,(System::IntPtr)Img->imageData); 

pictureBox1->Refresh(); 
関連する問題