硬件准备
ADSP-EDU-BF533:BF533开发板
AD-HP530ICE:ADI DSP仿真器
软件准备
Visual DSP++软件
硬件链接
功能介绍
代码实现了图像灰度提取处理,代码运行时,会通过文件系统打开工程文件根目下" …/ImageView"路径中的 testin.bmp文件,进行图像灰度提取处理后把图片保存到工程文件根目下" …/ImageView"路径中的 testout.bmp 文件,并且将处理后的图片显示到液晶屏上。例子中的算法只支持尺寸为 480*272 的 24bit 的 bmp 图片,可以根据自己的需要自行调整
代码使用说明
funct.c 中的 RGBtoGary (const BMPIMAGE *img)
该函数是将读取的图像进行灰度提取 。
BMPIMAGE * 图像结构体指针
在 main.c 文件中定义了一个#define LCD_VIEW_ENABLE 宏开关,如果不需要将处理后的图片显示在液晶屏上,只需将这个宏开关注释掉
代码实验步骤
- 将工程文件根目下的 ImageView 文件夹内存放一个名为 testin.bmp 的图像文件,该文件尺寸为 480*272 的24bit 的 bmp 图片(默认已存一幅测试图片)。
- 打开工程文件 BF53x_RGBtoGary.dpj,编译并运行代码
- 等待图像处理,处理完成之后会在液晶屏上显示处理后的图片,并在工程文件根目下的 ImageView 文件夹内生成一个处理后名为 testout.bmp 图片。
代码实验结果
1.液晶屏上显示处理后的图片。
2.在工程文件根目下的 ImageView 文件夹中查看处理后名为 testout.bmp 图片。
程序源码
#include “bmp.h”
/********************************************************
- 函数名 : RGBtoGary
- 函数功能 : 图像灰度提取处理
- 函数参数 : BMPIMAGE * 图像结构体指针
- 函数返回值 :FALSE 处理失败
-
TRUE 处理成功
*******************************************************/
int RGBtoGary(BMPIMAGE img)
{
// 指向源象素的指针
unsigned char *lpSrc = img->imgbuf;;
int i;
unsigned char gray;
// 图像的宽度和高度
long lWidth;
long lHeight;
lWidth = img->infohead.BiWidth;
lHeight = img->infohead.BiHeight;
for(i=0;i<lWidth*lHeight*3;i=i+3)
{
gray =( lpSrc[i+0]*229+lpSrc[i+1]*587+lpSrc[i+2]*114+500)/1000;
lpSrc[i+0]=gray;
lpSrc[i+1]=gray;
lpSrc[i+2]=gray;
}
// 返回
return TRUE;
}