- 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)