[pre]
问题一[/pre][pre]
采集了一段视频已经转换成了rgb888的灰度图像,想把它转成八位索引灰度图像,自己弄了一下不怎么成功,下面是[/pre][pre]
自己编写的部分代码[/pre][pre]
uchar rgbhuidu[320*240*3];rgb888的灰度图数据存放在rgbhuidu数组中,该数组内的r,g,b三个分量已经相等[/pre][pre]
uchar r[320*240];[/pre][pre]
for(j=0;j<320*240;i++){r[j]=rgbhuidu[3*j];}[/pre][pre]
QPainter *painter
=new QPainter(this);[/pre][pre]
QImage *image
=new QImage(r
,320,240,QImage::Format_Indexed8
);//r是每一帧的灰度图像的red分量,[/pre][pre]
//其实rgb888图像的三个分量已经相等了,现在是想把他转成8位索引图像[/pre][pre]
QVector<QRgb>grayColorTable; 制作索引表,
uint rgb=0;[pre]for(inti=0;i<256;i++)[/pre][pre]{grayColorTable.append(rgb);[/pre][pre]rgb+=0x00010101;}//这里为什么要对rgb进行这个加法?而且在网上看到的代码都是用彩色图像的绿色分量来做索引值[/pre][pre]Qimage image2=*image;[/pre][pre]image2.setColorTable(grayColorTable);//设置索引表[/pre][/pre][pre]painter
->drawImage
(10,10,image2
,0,0,320,240);[/pre][pre]
高人可以帮我看看哪里错了吗?运行之后没有任何显示[/pre][pre]
http://www.oschina.net/code/snippet_96486_4027这是网上的彩色转灰度的例子[/pre][pre]
[/pre][pre]
问题二[/pre][pre]
LINUX在QT中调用V4L2采集视频后,想把采集的视频保存下来要调用什么函数?[/pre]
[pre]
[/pre][pre]
问题三[/pre][pre] [/pre][pre]在QT中对图像进行处理后得到了一副二值图像,现在想将图像中的白色部分(人的形状)用矩形(最小的矩形)给框出来,矩形的四条[/pre][pre]边刚好可以框住
图片的所有的白色部分,在QT中要调用什么函数来实现这个功能?怎样来确定矩形四条边的位置求高人[/pre][pre]指点,最好有源代码和解释。[/pre][pre]
[/pre]