在图片框中显示cv::Mat格式的网络摄像头提要
Displaying webcam feed in cv::Mat format in a picturebox
我正在使用OpenCV从网络摄像头和检测人脸后进行直播。我正在调整它们的大小,以便只显示我的脸。
但问题是,我在C++Windows窗体中执行所有这些操作,并且我希望它显示在PictureBox
中,而不是显示在OpenCVimshow()
窗口中。
我正在使用cv::Mat
,所以在图片框中显示时遇到了很多问题。
我试过把它转换成IplImage
,但也没用。此外,我尝试过谷歌,但找不到一个有效的解决方案。我已经试了三天了。
这是我的显示代码:
face = getFace(frame);
cv::imshow("window",face);
其中frame
和face
是cv::Mat
这里有一个C++CLR函数,可以在任何Windows窗体控件上绘制OpenCV mat:
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通道图像。
尝试对其他图像类型使用位图的像素格式。
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 如何在openssl-ecc中获取十六进制格式的私钥
- 将"打开的CV图像"中的"颜色"转换为整数格式
- TDateTime格式在C++Builder中不会更改
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- 通过网络、跨平台传递std::变体是否安全
- 如何在MNIST上提高网络运行的准确性
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 检查不带转换的扫描格式
- 当我尝试使用 sstream 和分面将 Boost Time_duration转换为字符串时,我没有得到所需的格式
- 是否可以从格式字符串中检索"width"
- clang格式:宏的缩进
- clang格式:禁用排序包含
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 将RGB图像保存为PPM格式
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- 询问在设计我的手臂模拟器功能表示格式1
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 带有Protobuf序列化的C++Hazelcast:字符串不是UTF-8格式的
- 在图片框中显示cv::Mat格式的网络摄像头提要