unsigned char*图像格式转换为QImage图像格式

        相机的例程当中得到的是unsigned char*格式,但我要在Qt显示上显示需要转成QImage格式。之前我使用的方式是把uchar*转换为Mat格式再转换为QImage格式,这种方法在网上很容易搜到,但我查的时候没有找到很明确的将unsigned char*转成QImage格式的方法。

        一般相机库内会有将bayer格式图像转成RGB格式的unsigned char指针(需要注意的是,转成的RGB的顺序,有的函数转成的图像是BGR格式)。之后如何将其转成QImage并显示。

        其实原理很简单,和Mat转QImage是一样的,我也是借鉴了Mat转QImage的方法。

        首先需要的知道的是所得图像的width和height,这个相机采到的图像像素是很明确的。以下我的采到的图像是1920 * 1200。

unsigned char* image;
QImage img(image,1920,1200,5760,QImage::Format_RGB888);

        image就是你采到的unsigned char* 图像格式的数据,第四个参数是一行图像的数据量,因为横坐标方向上的像素个数是1920,而每个像素点包含RGB三个分量,因此是5760。之后在创建的label窗口上显示就可以看到图像了。

ui->label->setScaledContents(true);
ui->label->setPixmap(QPixmap::fromImage(img));

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值