天嵌 ARM开发社区

 找回密码
 注册
查看: 2702|回复: 5

OV9650网络传输QT接收端颜色不对

[复制链接]
mooncho 发表于 2012-3-19 15:50:17 | 显示全部楼层 |阅读模式
1、我在板子上写的服务程序是:打开/dev/camera 读取数据  通过网络套接字发送出去
2、在电脑上用QT作为接收终端,把接收到的数据读入QByteArray
QByteArray datarecv;
datarecv.resize(nr);socket->waitForReadyRead(-1);                datarecv = socket->readAll();
数据用QPixmap pix;
pix.loadFromData();函数装载到QPixmap中进行绘制
这里出现了第一个问题:在装载后数据后,我用qDebug() << "pix size: " << pix.size().width()<< " - " << pix.size().height()<< endl;
结果两个都为0,说明数据并为写进去。这是怎么回事呢?
我认为是格式的问题,如果板子服务端传来的数据是YUV格式的,那么电脑上的QT程序应该是识别不了的,于是我进行了YUV转RGB格式(转换公式同“摄相头源码,支持AV摄相头和USB摄相头”该帖子给的程序uApi.c下YUYVToRGB(unsigned char *yuv, unsigned char *rgb, unsigned int width,unsigned int height)该函数相同),把转换后的数据装载到pix中,就出现了另一个问题:图像出来了,但颜色却是乱的,只能很艰难地分辨出图像中的物体。这又是怎么回事呢?如图:


两个问题困扰了很久了,希望高手和遇到同样问题的同学们不吝赐教。谢谢啦~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
TQ-lkp 发表于 2012-3-20 09:48:47 | 显示全部楼层
你要先保证预览是正常的再做远程传输的,我们提供的有预览的源码,你去看下先
 楼主| mooncho 发表于 2012-3-20 12:57:49 | 显示全部楼层
TQ-lkp 发表于 2012-3-20 09:48
你要先保证预览是正常的再做远程传输的,我们提供的有预览的源码,你去看下先

为什么要先确保预览正常呢   我用MJPEG-Streamer能看到正确图像啊
TQ-lkp 发表于 2012-3-20 14:07:41 | 显示全部楼层
关键是你设置的摄相头的格式是什么
 楼主| mooncho 发表于 2012-3-20 15:44:34 | 显示全部楼层
本帖最后由 mooncho 于 2012-3-20 15:48 编辑
TQ-lkp 发表于 2012-3-20 14:07
关键是你设置的摄相头的格式是什么

这次我没有进行格式转换  先把数据读入QFile中  再buf=file->map(0,SIZE);
                   image=new QImage((unsigned char *)buf,320,256,QImage::Format_RGB16);
                   image->loadFromData((unsigned char *)buf,SIZE);
                   ui->window->setPixmap(QPixmap::fromImage(*image,Qt::AutoColor));
结果也有图像  但同样图像颜色不对  这应该不是格式问题吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
TQ-lkp 发表于 2012-3-20 15:55:58 | 显示全部楼层
本帖最后由 TQ-lkp 于 2012-3-20 15:56 编辑

你设置的是什么格式???你设置的是什么格式的输出,你就要按你设置的格式来显示,我们提供的源码中已经有相头的转换函数了,这个不要猜了,你看下代码就清楚了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-28 09:27 , Processed in 1.048868 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表