ADI Blackfin DSP处理器-BF533的开发详解49:图像处理专题-Bright (图像亮暗处理)(含源码)

硬件准备

ADSP-EDU-BF533:BF533开发板
AD-HP530ICE:ADI DSP仿真器

软件准备

Visual DSP++软件

硬件链接

功能介绍

代码实现了图像亮暗处理,代码运行时,会通过文件系统打开工程文件根目下" …/ImageView"路径中的 testin.bmp 文件,进行图像亮暗处理后把图片保存到工程文件根目下" …/ImageView"路径中的 testout.bmp 文件,并且将处理后的图片显示到液晶屏上。例子中的算法只支持尺寸为 480*272 的 24bit 的 bmp 图片,可以根据自己的需要自行调整。

代码使用说明

funct.c 中的 Bright(const BMPIMAGE *img,int rate)

该函数是将读取的图像进行亮暗处理。
BMPIMAGE * 图像结构体指针

int rate 亮暗参数,大于 100 变亮,小于 100 变暗,等于 100 保持不变
在 main.c 文件中定义了一个#define LCD_VIEW_ENABLE 宏开关,如果不需要将处理后的图片显示在液晶屏上,只需将这个宏开关注释掉

代码实验步骤

  1. 将工程文件根目下的 ImageView 文件夹内存放一个名为 testin.bmp 的图像文件,该文件尺寸为 480*272 的24bit 的 bmp 图片(默认已存一幅测试图片)。
  2. 打开工程文件 BF53x_Bright.dpj,编译并运行代码。
  3. 等待图像处理,处理完成之后会在液晶屏上显示处理后的图片,并在工程文件根目下的 ImageView 文件夹内生成一个处理后名为 testout.bmp 图片。

代码实验结果
1.液晶屏上显示处理后的图片。
2.在工程文件根目下的 ImageView 文件夹中查看处理后名为 testout.bmp 图片。

程序源码

#include
#include “bmp.h”

/********************************************************

  • 函数名 : Bright
  • 函数功能 : 图像亮暗处理
  • 函数参数 : BMPIMAGE * 图像结构体指针
    int rate 大于100变亮,小于100变暗,等于100保持不变
  • 函数返回值 :FALSE 处理失败
  •   			TRUE	处理成功
    

********************************************************/

int Bright(BMPIMAGE* img,int rate)
{
// 指向源象素的指针
unsigned char *lpSrc = img->imgbuf;

int i;	

// 图像的宽度和高度
long	lWidth;
long	lHeight;
unsigned int intR,intG,intB,intMax;

lWidth = img->infohead.BiWidth;
lHeight = img->infohead.BiHeight;

if(rate<=100)
{
	for(i=0;iintG?intR:intG;
		intMax=intMax>intB?intMax:intB;
		if(intMax>255)
		{
			intR=(intR*255)/intMax;
			intG=(intG*255)/intMax;
			intB=(intB*255)/intMax;
		}
		lpSrc[i+0]=intR;
		lpSrc[i+1]=intG;
		lpSrc[i+2]=intB;
	}
}

}

你可能感兴趣的:(ADI,DSP技术中心,ADI,DSP资料下载,Blackfin专题,图像处理,ADI,DSP,ADI,DSP中文资料)