Как отобразить cv :: Mat в приложении Windows Form?
Я пытался использоватьimwrite
чтобы успешно отобразить изображение в форме Windows, но это повредит диск, поэтому мне нужен лучший способ сделать это.
Ниже мой текущий код, который временно записывает образ на жесткий диск:
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;
}
}
Когда я пытаюсь использовать OpenCVMat
это в памяти, я не могу заставить его работать. Следующие фрагменты кода - это то, что я пробовал до сих пор:
this->panel1->BackgroundImage = System::Drawing::Bitmap(frame);
или же
this->panel1->BackgroundImage = gcnew System::Drawing::Bitmap( frame.widht,frame.height,System::Drawing::Imaging::PixelFormat::Undefined, ( System::IntPtr ) frame.imageData);
Я хочу показатьframe
в этом коде без использованияimwrite
, Как мне это сделать?