DSP图像取反设计.docVIP

  • 44
  • 0
  • 约5.31千字
  • 约 10页
  • 2017-07-03 发布于湖北
  • 举报
DSP图像取反设计概要1

郑州轻工业学院 课程设计 题目 院 系:计算机与通信工程学院 班 级:电子信息科学与技术10-01 姓 名: 指导老师: 实验目的 了解取反的算法和用途,学习设计程序实现图像的取反运算。 实验设备 机一台,操作系统为 Windowsxp,安装 Code Composer Studio 3.1 软件。 程序流程图 #define IMAGEWIDTH 80 #define IMAGEHEIGHT 80 extern unsigned char dbImage[IMAGEWIDTH*IMAGEHEIGHT]; extern unsigned char dbTargetImage[IMAGEWIDTH*IMAGEHEIGHT]; int mi,mj; unsigned int m_nWork; unsigned char *pImg,*pImg1; void Reverse(int nWidth,int nHeight) { pImg=dbImage; pImg1=dbTargetImage; for ( mj=0;mjnHeight;mj++ ) for ( mi=0;minWidth;mi++,pImg++,pImg1++ ) (*pImg1)=(~(*pImg))0x0ff; } 实验步骤: Project-Open,打开该目录中的工程文件Image.pjt。 选择菜单 View-Graph-Image,做如下设置(注意是设置两次而不是一次,即打开2个图像窗口,便于对比观察): Project-Rebuild ALL,编译链接。 File-Load Program:Histogram.out Debug-GO Main,如下图设置断点,这样方便观察不同图像的执行效果。 Debug-RUN(快捷键F5),全速运行。 实验结果: 增强对比度 增强对比度程序: void Reverse(int nWidth,int nHeight) { unsigned char x1=60,y1=50,x2=180,y2=250; double k1=(1.0)*y1/x1,k2=(1.0)*(y2-y1)/(x2-x1),k3=(1.0)*(255-y2)/(255-x2); pImg=dbImage; pImg1=dbTargetImage; for ( mj=0;mjnHeight;mj++ ) for ( mi=0;minWidth;mi++,pImg++,pImg1++ ) { if(*pImgx1) *pImg1=(unsigned char)(*pImg*k1); else if(*pImg=x1*pImgx2) *pImg1=(unsigned char)((*pImg-x1)*k2+y1); else *pImg1=(unsigned char)((*pImg-x2)*k3+y2); } } 实验结果: 实验主程序 主函数: #define IMAGEWIDTH 80 #define IMAGEHEIGHT 80 #define MODEGRAYBAR 0 #define MODEGRAY 1 #define MODEPHOTO1 2 #define MODEPHOTO2 3 #define MODEPHOTO3 4 #define MODEPHOTO4 5 void InitImage(unsigned int nMode,unsigned char *pImage,int nWidth,int nHeight); (在运行的过程的,可以从缓冲区读出所需要的数据) unsigned char dbImage[IMAGEWIDTH*IMAGEHEIGHT]; unsigned char dbTargetImage[IMAGEWIDTH*IMAGEHEIGHT]; /* 直方图统计实验程序 */ int main() { InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT); Reverse(IMAGEWIDTH,IMAGEHEIGHT); InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint(设置断点以便观察效果) Reverse(IMAGEWIDTH,IMAGEHEIGHT);

文档评论(0)

1亿VIP精品文档

相关文档