gpt4 book ai didi

c++ - 在图片框中以 cv::Mat 格式显示网络摄像头提要

转载 作者:可可西里 更新时间:2023-11-01 18:37:08 25 4
gpt4 key购买 nike

我正在使用 OpenCV 从网络摄像头获取实时流并检测面部。我正在调整它们的大小,以便只显示我的脸。

但问题是我在 C++ Windows Forms 中做所有这些,我希望它显示在 PictureBox 中,而不是在 OpenCV 中显示 imshow() 窗口。

我正在使用 cv::Mat,所以在图片框中显示时遇到了很多问题。

我试过将它转换成IplImage,但也没有用。另外,我试过谷歌,但找不到有效的解决方案。我已经尝试了 3 天了。

这是我的显示代码:

                 face = getFace(frame);
cv::imshow("window",face);

其中 framefacecv::Mat

最佳答案

这是一个 C++ CLR 函数,用于在任何 Windows 窗体控件上绘制 OpenCV 垫:

void DrawCVImage(System::Windows::Forms::Control^ control, cv::Mat& colorImage)
{
System::Drawing::Graphics^ graphics = control->CreateGraphics();
System::IntPtr ptr(colorImage.ptr());
System::Drawing::Bitmap^ b = gcnew System::Drawing::Bitmap(colorImage.cols,colorImage.rows,colorImage.step,System::Drawing::Imaging::PixelFormat::Format24bppRgb,ptr);
System::Drawing::RectangleF rect(0,0,control->Width,control->Height);
graphics->DrawImage(b,rect);
delete graphics;
}

该函数只能绘制8位3 channel 图像。

尝试对其他图像类型使用位图的像素格式。

关于c++ - 在图片框中以 cv::Mat 格式显示网络摄像头提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12616529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com