在当今高度信息化的社会,图形图像等形象性信息所占比例日益提高,计算机在各种信息处理中正发挥着重要作用。由于数字化技术、计算机技术的介入,传统的模拟图像为住的电视界已开始全面进入数字化的数字广播时代。从电子显微镜下的微观世界,到卫星图像所拍广阔领域,图像处理在实际生活中广泛应用:把文档、图形等图像化的办公图像处理;医用X射线CT(Computer Tomography,计算机断层摄影)机为代表的医用图像处理;用于人造卫星拍摄的遥感图像处理以及广播电视、电影界中的图像处理等。为了增强显示效果,LED显示屏也可以有多种显示模式。
LED图文显示屏可以增添多种显示模式,从而增强显示效果。产生不同显示模式的方法,主要是随时间变化不断控制刷新显示数据。但对于显示数据的刷新,并不意味着一定要重新编写显示数据,可以通过一定的算法从原来的显示数据接生成。可以按顺序调整行号,使显示图文产生上下平移;而顺序调整列显示数据的位置,就可以达到左右平移的目的;同时调整行列顺序,就能得到对角线平移的效果。
如果对于信息数据的刷新算法过于复杂,可以考虑直接生成带有显
示模式的数据。经过系统的分析与设计,采用在文本区内,完成对文字
及图形的编辑工作,完成字模的提取与保存后,通过算法设计,增添滚
动显示模式。
1滚动显示模式的设计与实现
屏幕显示滚动效果在PreviewDialog内,加入button选项,即实现多屏信息保存时,根据需要普通效果与滚动效果穿插选择达到最终保存的目的:
for(unsigned char i=0;i<file_number;i++)
CString tempField1,tempField2,tempField3;
unsigned char file_length,file_distype,file_distime;
tempField1=m_listCtrl.GetItemText(i,0);
tempField2=m_listCtrl.GetItemText(i,1);
tempField3=m_listCtrl.GetItemText(i,2);
file_length=(unsigned char)tempField1.GetLength();
myfile.Write(&file_length,1);//存储文件名长度
myfile.Write(&file_distype,1);//存储文件显示方式
myfile.Write(&file_distime,1);//存储文件显示时间}
2图象预览功能设计与实现
当控制系统完成编辑工作后,保存的是字模信息,增加图象预览功能主要用来预览要传输的字模保存文件,由于加入了如多屏传输、滚动显示效果,而且传输到大屏的待显示的信息需要预先保存,所以对保存的信息预览有利于准确、高效的完成编辑到传输的工作。研究与设计:
定义unsigned char dis_type_pre=0//表示普通方式
定义unsigned char dis_type_pre=1;//表示滚动方式
当设置方式为滚动时:
if(roll_number!=399){
for(row=0;row<192;row++){
for(col=0;col<=roll_number;col++){
if(zimo[row][383-roll_number+col]==1){
dc.SetPixel(col,row,0);
}}}
else{
dis_type_pre=0;
roll_number=-1; KillTimer(1);
for(row=0;row<192;row++){
for(col=0;col<383;col++){
if(zimo[row][col]==1){
dc.SetPixel(col,row,0);
}}}
在图象处理领域,把形状的变化称为几何学变换。比如天气预报中常见的气象卫星所拍摄的云图,人造卫星所拍摄的图象,由于镜头角度、焦距等原因,都会出现歪斜失真。
几何学变换基本包括图像的大小缩放以及图像旋转等。由于本系统应用于LED显示屏,所以图象的大小缩放不适合所编辑图象的处理,可以扩展效果。下面简单就图象旋转做分析:本章提到的系统采用在文本区建立的二文数组相当于左上角为原点,右方或右下方为正值的坐标系,所以顺时针旋转a角度后,
坐标X轴对应的点X=x*cos(a)+y*sin(a);
坐标Y轴对应的点Y=-x*sin(a)+y*cos(a);
软件控制系统与硬件模块单片机之间采用串行异步通讯方式,所以在程序设计中要求遵循通讯协议,确定各种参数。
在DOS的系统接口中DOS INT21H的03H和04H号功能调用为异步串行通信的接收和发送功能,而BIOS INT14H有4组功能调用为串行通信服务,正因为如此在DOS中采用寄存器直接读写、BIOS调用、通信中断程序等方法可以比较容易实现串口通信。但是在Windows中由于Windows采用消息驱动和设备统一管理,以及利用消息对列进行程序控制,所以DOS下的方法都不适宜采用。在Windows中为实现串口通信,Windows的SDK提供了完备的API函数和以中断方式驱动的通信驱动程序,使编程变的较为容易。Windows提供的标准通信API函数很多(WIN16和WIN32中29有所不同),一般来说长用的32位模式下的串口通信方法有1.以文件方式打开串口2.使用现有的Active X控件实现3.直接嵌入汇编法4编写VXD或者WDM实现。
但是直接嵌入汇编方法不能在Windows NT操作系统下使用,由于Windows 98的非完全保护,所以只适合在Windows 98系统下使用这种操作方式。为了使用广泛性,控制系统应用Microsoft Visual C++6.0开发工具,所以采用的是微软公司的MSComm控件,它是作为一个ocx来提供的。基本使用流程和直接使用API函数类似,通过控件来调用API函数完成串口通信。
下面结合MSComm控件的属性,对数据传输做详细的设计:
m_comm_unit.SetCommPort(1);//选择串口1
m_comm_unit.SetInBufferSize(1024);//设置输入缓冲区的大小
m_comm_unit.SetOutBufferSize(512);//设置输出缓冲区的大小
if(!m_comm_unit.GetPortOpen())//打开串口
m_comm_unit.SetPortOpen(TRUE);
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>