基于VFW的成像声纳视频压缩存储设计
如果直接显示图像数据,那么在屏幕上为一个矩形,和实际探测区域为90°视角的扇形区域不一致。为了符合人们的观察习惯,需要把图像进行坐标转换,将矩形视图转换成扇形视图,如图 2所示。除此之外,波束形成产生的是灰度图像,每个像素点由一个8bit的像素值表示,即0~255的灰度值。为了提高人眼对图像的分辨能力,在显示的时候需要将灰度图像映射成彩色图像,即每个像素点由三个8bit的值表示,分别为RGB强度值。这种彩色并非真正意义上的彩色图像,故而称之为伪彩色。图 3所示为伪彩色映射的bone、cool、copper、hot、jet五种映射方式。
压缩前位图格式与转换后的扇形图像有关,它保存的是扇形图的位图信息,包括图像的宽度、高度、大小、每个像素点的位数等。最终显示的扇形图的宽和高与图像是否处于缩放状态有关。在MFC工程的头文件中定义了一个40字节的专有结构来保存压缩前的位图格式,根据图像是否处于缩放状态进行赋值。
2.2 压缩参数设置
该部分定义了一个COMPVARS结构的对象保存编码器的压缩参数。开发者可以自己手动设置该结构体中的各个成员变量,前提是你必须了解使用的编码器的参数值;也可以弹出一个对话框让用户选择编码器,如图 4所示,同时初始化COMPVARS结构。
本文中采用第二种方法来设置压缩参数。ICCompressorChoose()函数中的uiFlags参数可供开发人员进行不同应用的开发,可以设置为如表 1所示的五种值。
本文选择MPEG-4 Xvid编码器。如果用户成功选择了一个编码器,该函数返回TRUE,否则返回FALSE。通过一个指向COMPVARS结构的指针返回用户通过对话框选择的编码器的压缩参数信息并使用该压缩参数进行图像压缩。
c++相关文章:c++教程
评论