首页 > 其他分享 >Basler相机Bayer格式转Qt RGB888

Basler相机Bayer格式转Qt RGB888

时间:2022-09-02 18:33:27浏览次数:51  
标签:Qt ptrGrabResult uchar Basler img 相机 buffer Bayer QImage

无论什么品牌的相机,Bayer转RGB都涉及到插值,因此建议使用官方SDK里的函数进行转换。针对Basler相机,代码如下:

void BaslerCamera::toQImage(CGrabResultPtr ptrGrabResult, QImage &OutImage)
{	
	int width = static_cast<int>(ptrGrabResult->GetWidth());
	int height = static_cast<int>(ptrGrabResult->GetHeight());
	
	if (ptrGrabResult->GetPixelType() == Pylon::PixelType_Mono8)
	{
		uchar* buffer = (uchar*)ptrGrabResult->GetBuffer();
		OutImage = QImage(buffer, width, height, QImage::Format_Grayscale8);
	}
	else //bayer格式等
	{
		CImageFormatConverter   fc;
		//CPylonImage* img = new CPylonImage(); //注意必须为指针,否则 GetBuffer()不正确。注意在合适的地方new/delete
		//CPylonImage img;

		//通过官方函数先转为 RGB8
		fc.OutputPixelFormat = PixelType_RGB8packed;
		fc.Convert(*img, ptrGrabResult);

		uchar* buffer = (uchar*)img->GetBuffer();

		OutImage = QImage(buffer, width, height, QImage::Format_RGB888);
	}
}

【多余的话】

官方有下图函数,但是貌似没用。因此使用 CImageFormatConverter

 

标签:Qt,ptrGrabResult,uchar,Basler,img,相机,buffer,Bayer,QImage
From: https://www.cnblogs.com/xixixing/p/16650915.html

相关文章

  • pyqt5控件使用方法
    一)消息框(QMessageBox)一、提供的类型QMessageBox.information信息框QMessageBox.question问答框QMessageBox.warning警告QMessageBox.ctitical危险......
  • Qt 程序发布以及打包成exe安装包
    一、简述Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用Inn......
  • (课设)C/S架构即时聊天软件开发(QT)
     (课设)C/S架构即时聊天软件开发源点工作室毕设,作业,论文,考试疑难解答,源码均有,看简介加我。 3人赞同了该文章一、引言项目概述项目目的:在已......
  • Qt之TCP通信笔记-发送端、接收端、客户端、服务端及write()、read()
    一、QtTCP通信接收端(read()):1.从发射newConnection()信号开始(当有新的TCP连接,会发射newConnection()信号);2.当QTcpSocket缓存接收到新的数据时发射readyRead信号;3.连......
  • linux下Qt5中qDebug信息不输出
    Qt5中qDebug信息不输出的解决方法Qt5中默认不输出调试信息,因此要输出调试信息时,需要修改配置。一、修改qt项目pro配置文件确保调试模式时,取消QT_NO_DEBUG_OUTPUT......
  • Qt开发经验小技巧241-245
    QString类是我个人认为Qt所有类中的精华,封装的无可挑剔。内置了各种进制数据的转换,比如将数据转成10进制、16进制显示,或者将10进制、16进制数据转成字符串显示。这里很容......
  • QT网络编程【二】【Socket】
    1.QT中添加socket库的相关操作2.正常c++11VS2019使用socket库的操作3.winsock2与sys/socket.h的区别?4.WinSock2的基本操作?5.socket的创建参数的说明[]:http://t......
  • QT——状态栏添加label
    QLabel*state_msg=newQLabel(this);state_msg->setMinimumSize(state_msg->sizeHint());//设置label属性state_msg->setAlignment(Qt::AlignHCenter);//设......
  • Qt 浮点数比较
    计算机表示浮点数都有一个精度的限制,由于精度的限制会发生部分的截断,使得原本不相等的浮点数就变成了相等假设floatx=3.144444445,y=3.144444448从数学角度上看,x......
  • 编译qt时的gcc版本问题
    编译qt5.12.12源码,用gcc4.8.5可以编译qt源代码,没有编译xcbplugin,应该也能编译成功。(顺便说一句,编译xcb插件时需要libxkbcommon,而其又依赖于libxml2等类库和meson、ninja编......