灰度变换实习报告

灰度变换实习报告
灰度变换实习报告

设计题目:基于C55x的图像灰度

变换的程序设计与实现

班级: 设计小组:

组长:学号:

组员:学号:

指导教师:日期:

目录

一、实习题目..........................................................错误!未定义书签。

二、实习目的..........................................................错误!未定义书签。

三、实习要求..........................................................错误!未定义书签。

四、系统原理描述.................................................错误!未定义书签。

五、方案论证及系统设计....................................错误!未定义书签。

六、系统程序的设计.............................................错误!未定义书签。

七、调试方法及性能分析与实验......................17错误!未定义书签。

八、实习总结.....................................................22错误!未定义书签。

九、实习体会..........................................................错误!未定义书签。

十、参考文献..........................................................错误!未定义书签。

一、实习题目:

1、灰度线性变换

2、灰度的对数变换

3、锯齿波变换

4、图像剪取

二、实习目的:

1、巩固和深化数字图像处理技术所涉及的数理基础、基本算法和各种图像处

理技术方法,学习和掌握图像变换。

2、对学习图像处理的基础知识对其应用工程实践有一定的认识,提高学生对

应用软件的使用能力。

3、通过理论联系实际,综合运用所学知识,提高学生独立分析和解决实际问

题的能力,增强学生的工程意识,打好专业基础

三、实习要求:

1、能够根据设计题目要求查阅检索有关的文献资料,结合题目选学有关参考书;

2、熟悉计算机图像处理的设计方法;

3、熟悉图像灰度变换程序的设计方法;

4、掌握图像灰度变换的仿真方法;

5、完成图像的灰度变换。

四、系统原理描述:

灰度变换将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的值决定。它常用于改变图像的灰度范围及分布,是图像数字化及图

像显示的重要工具。灰度变换因其作用性质有时也被称为对比度增强、对比度拉伸或点运算,称之为灰度变换。

灰度变换实际上是灰度到灰度的映射过程。设输入图像为A (x ,y )输出图像为B (x ,y ),则灰度变换可表示为:

)],([),(y x A f y x B =

即灰度变换完全由灰度映射函数)(r f s =决定。显然灰度变换不会改变图像内像

素点之间的空间关系。

1. 灰度线性变换

设图像灰度值f(x,y)的可能值域为D ,但在一定条件下,使得其取值范围缩小为且如图 7-11所示,这种状态常出现于连续图f(x,y)值的动态范围小,或摄影曝光不足中,因而其对应的直方图P (D)如图所示,集中于某个较小的灰度区间内。但是通常人们希望灰度直方图在全部灰度区域内均匀分布,最简单地是把低反差图像进行灰度变换得到高反差图像,即线性变换,如下式:

??

???∈=∈=∈+--=]

[][][)(max min D D D D D

D D D D D D D D D D D D D D

b f

b

f

a f a f

b a f

a

a f a f

b f

,,,

该式可以使变换后的灰度的取值范围扩大到f D

一般来说,只有当两个相邻像素的灰度值(亮度值)相差到一定程度时,人的视觉才能分辨。若灰度值D 仅在较小区间内时,则人眼可分辨的亮度差的总级数则亦很少,从而造成目标图像灰度值与背景灰度值相接近,人眼而无法分辨检出。而对其进行

)

(D T D

f

=的变换后,则如上图可使变得更大,从而使得视觉上对变换后图

像能够分辨的亮度差的总级数增加,造成目标图像与背景间亮度差异的加大,使原先无法被人眼检出的目标图像也能检出,且变换后图像清晰度也大大提高。

2. 灰度的对数变换

对数变换常用来扩展低值灰度,而压缩高值灰度,这样可以使低值灰度的图像细节更容易看清楚,对数变换的表达式为:

]1),(log[),(+=y x f K y x g

其中K 为一根据图像内容来确定的常数因子。

3. 锯齿波变换

这种方法常用来在动态范围较小的显示器上显示动态范围较大的图像,或者用来发现图像中基本轮廓,变换曲线如图所示。

4.图像剪取

对于灰度图像f,设定一个阈值t,若f(i,j)t,则f(i,j)的值保持不变。处理后的图像仍然是灰度图像,只不过阈值t以下的像素被置0。

五、方案论证及系统设计

六、系统程序的设计

1、灰度线性变换

#include

#include

#include "imagelib.h"

//添加图像和视频处理库头文件

#include "imagesample.h"

//添加图像例子头文件,

//包含原始的图像文件goldhill[128][128]

#define MAX_PIXEL_VALUE 256

//包含原始图像像素的最大灰度值

#define WIDTH 128

#define HEIGHT 128

//原始图像行和列的像素数

int my_result[256];

//保存自编函数得到的灰度图结果的数组

short histogram_outp ut[256];

//保存调用库函数得到的灰度图结果的数组

short my_threshold_val=175;

//short my_thresho ld_val=127;

//阈值的设定

void my_histogram();

//声明自编灰度图算法显示函数

void main( )

{

int i;

int my_size;

short *inp ut;

my_size = WIDTH*HEIGHT;

//计算所有像素点数

input = &go ldhill[0][0];

//获取原始图像的首地址

for(i= 0;i< MAX_PIXEL_VALUE;i++) histo gram_output[i]= 0;

IMG_histogram(input,histogram_outp ut,my_size);

//调用image.lib库函数实现灰度图显示

my_histogram();

//自编C语言算法程序实现灰度图显示

IMG_threshold( &go ldhill[0][0],&gold hill[0][0],WIDTH ,HEIGHT, my_thresho ld_val );

//调用image.lib库函数实现阈值处理与显示

while(1);

}

void my_histogram()

{

int za=10,zb=235,i,j,z1=0,z2=255,zzba;

short (*p)[128];

//定义了一个指针变量p,

//指向了一个包含128个元素的一维数组,

//即行指针变量p

p=goldhill;

zzba=(z2-z1)/(float)(zb-za);

//获取原始图像的首地址

// for(i=0;i<256;i++) my_result[i]=0;

for (i=0;i<128;i++)

{ for (j=0;j<128;j++)

{

if(*(*(p+i)+j)<=za)*(*(p+i)+j)=z1;

else{

if(*(*(p+i)+j)>=zb)*(*(p+i)+j)=z2;

else *(*(p+i)+j)=zzba*(*(*(p+i)+j)-za)+z1+0.5;

}

// k=*(*(p+i)+j);

// my_result[k]++;

}

}

//自编灰度直方图算法显示函数

}

2、灰度的对数变换

#include

#include

#include "imagelib.h"

//添加图像和视频处理库头文件

#include "imagesample.h"

//添加图像例子头文件,

//包含原始的图像文件goldhill[128][128]

#define MAX_PIXEL_VALUE 256

//包含原始图像像素的最大灰度值

#define WIDTH 128

#define HEIGHT 128

#define ZERO 0

//原始图像行和列的像素数

int my_result[256];

//保存自编函数得到的灰度直方图结果的数组short histogram_output[256];

//保存调用库函数得到的灰度直方图结果的数组short my_threshold_val=175;

//short my_threshold_val=127;

//阈值的设定

void my_histogram();

//声明自编灰度直方图算法显示函数

void main( )

{

int i;

int my_size;

short *input;

my_size = WIDTH*HEIGHT;

//计算所有像素点数

input = &goldhill[0][0];

//获取原始图像的首地址

for(i= 0;i< MAX_PIXEL_VALUE;i++) histogram_output[i]= 0;

IMG_histogram(input,histogram_output,my_size);

//调用image.lib库函数实现灰度直方图显示

my_histogram();

//自编C语言算法程序实现灰度直方图显示

IMG_threshold( &goldhill[0][0],&goldhill[0][0],WIDTH ,HEIGHT, my_threshold_val );

//调用image.lib库函数实现阈值处理与显示

while(1);

}

void my_histogram()

{

int i,j;

double za=2,zb=128,z1=0,z2=255,fij,gij,zzlba;

short (*p)[128];

//定义了一个指针变量p,

//指向了一个包含128个元素的一维数组,

//即行指针变量p

p=goldhill;

zzlba=(z2-z1)/(double)(log(zb)-log(za));

//获取原始图像的首地址

// for(i=0;i<256;i++) my_result[i]=0;

//初始化灰度直方图结果数组

for (i=0;i<128;i++)

{ for (j=0;j<128;j++)

/* log transform.*/

{

fij=*(*(p+i)+j);

if(fij==0)fij=0.001;

gij=zzlba*(log(fij)-log(za))+z1;

*(*(p+i)+j)=gij+0.5;

}

}

// k=*(*(p+i)+j);

// my_result[k]++;

}

3、锯齿波变换

#include

#include

#include "imagelib.h"

//添加图像和视频处理库头文件#include "imagesample.h"

//添加图像例子头文件,

//包含原始的图像文件goldhill[128][128]

#define MAX_PIXEL_VALUE 256

//包含原始图像像素的最大灰度值

#define WIDTH 128

#define HEIGHT 128

//原始图像行和列的像素数

int my_result[256];

//保存自编函数得到的灰度直方图结果的数组short histogram_outp ut[256];

//保存调用库函数得到的灰度直方图结果的数组short my_threshold_val=175;

//short my_thresho ld_val=127;

//阈值的设定

void my_histogram();

//声明自编灰度直方图算法显示函数

void main( )

{

int i;

int my_size;

short *inp ut;

my_size = WIDTH*HEIGHT;

//计算所有像素点数

input = &go ldhill[0][0];

//获取原始图像的首地址

for(i= 0;i< MAX_PIXEL_VALUE;i++) histogram_output[i]= 0;

IMG_histogram(input,histogram_outp ut,my_size);

//调用image.lib库函数实现灰度直方图显示

my_histogram();

//自编C语言算法程序实现灰度直方图显示

IMG_threshold(&gold hill[0][0],&go ldhill[0][0],WIDTH,HEIGHT, my_threshold_val );

//调用image.lib库函数实现阈值处理与显示

while(1);

}

void my_histogram()

{

int i,j;

float lwidth=128,ratio=128,gg=235;

short (*p)[128];

//定义了一个指针变量p,

//指向了一个包含128个元素的一维数组,

//即行指针变量p

p=goldhill;

//获取原始图像的首地址

// for(i=0;i<256;i++) my_result[i]=0;

//初始化灰度直方图结果数组for (i=0;i<128;i++)

{ for (j=0;j<128;j++)

{

gg=*(*(p+i)+j);

while(gg>lwidth) gg=gg-lwidth;

*(*(p+i)+j)=gg*ratio+0.5;

}

// k=*(*(p+i)+j);

// my_result[k]++;

}

//自编灰度直方图算法显示函数}

4、图像剪取

#include

#include

#include "imagelib.h"

//添加图像和视频处理库头文件

#include "imagesample.h"

//添加图像例子头文件,

//包含原始的图像文件goldhill[128][128]

#define MAX_PIXEL_VALUE 256

//包含原始图像像素的最大灰度值

#define WIDTH 128

#define HEIGHT 128

//原始图像行和列的像素数

#define ZERO 0

int my_result[256];

//保存自编函数得到的灰度直方图结果的数组short histogram_output[256];

//保存调用库函数得到的灰度直方图结果的数组short my_threshold_val=175;

//short my_threshold_val=127;

//阈值的设定

void my_histogram();

//声明自编灰度直方图算法显示函数

void main( )

{

int i;

int my_size;

short *input;

my_size = WIDTH*HEIGHT;

//计算所有像素点数

input = &goldhill[0][0];

//获取原始图像的首地址

for(i= 0;i< MAX_PIXEL_VALUE;i++) histogram_output[i]= 0;

IMG_histogram(input,histogram_output,my_size);

//调用image.lib库函数实现灰度直方图显示

my_histogram();

//自编C语言算法程序实现灰度直方图显示

IMG_threshold(&goldhill[0][0],&goldhill[0][0],WIDTH,HEIGHT,my_threshold_val );

//调用image.lib库函数实现阈值处理与显示

while(1);

} void my_histogram()

{

int i,j,threshold=0;

short (*p)[128];

//定义了一个指针变量p,

//指向了一个包含128个元素的一维数组,

//即行指针变量p

p=goldhill;

//获取原始图像的首地址

// for(i=0;i<256;i++) my_result[i]=0;

//初始化灰度结果数组

for (i=0;i<128;i++)

{ for (j=0;j<128;j++)

{

*(*(p+i)+j)=(*(*(p+i)+j)

// k=*(*(p+i)+j);

// my_result[k]++;

}

}

//自编灰度算法显示函数

}

七、调试方法及性能分析与实验

通过灰度线性变换程序将一副图像进行线性处理,线性变换后得到的图像如图(一)。通过灰度对数变换程序将图像进行对数处理,得到对数变换后的图像如图(二)。通过锯齿波程序将图像进行处理,得到处理后的图像如图(三)。通过图像剪取程序将图像进行处理,得到处理后的图像如图(四)。

图一线性变换

图二对数变换

图三锯齿波变换

图像灰度变换实验报告

图像灰度变换报告 一.实验目的 1.学会使用Matlab ; 2.学会用Matlab 软件对图像进行灰度变换,观察采用各种不同灰度变换发法对最终图像效果的影响; 二.实验内容 1.熟悉Matlab 中的一些常用处理函数 读取图像:img=imread('filename'); //支持TIF,JPEG,GIF,BMP,PNG 等文件格式。 显示图像:imshow(img,G); //G 表示显示该图像的灰度级数,如省略则默认为256。 保存图片:imwrite(img,'filename'); //不支持GIF 格式,其他与imread 相同。 亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in 至high_in 之间的值映射到low_out 至high_out 之 间,low_in 以下及high_in 以上归零。 绘制直方图:imhist(img); 直方图均衡化:histeq(img,newlevel); //newlevel 表示输出图像指定的灰度级数。 2.获取实验用图像:rice.jpg. 使用imread 函数将图像读入Matlab 。 3 .产生灰度变换函数T1,使得: 0.3r r < 0.35 s = 0.105 + 2.6333(r – 0.35) 0.35 ≤ r ≤ 0.65 1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg 进行处理,使用imwrite 函数保存处理后的新图像。 4.产生灰度变换函数T2,使得: s = 5.用T2imwrite 保存处理后的新图像。 6.分别用 s = r 0.6; s = r 0.4; s = r 0.3 对kids.tiff 图像进行处理。为简便起见,使用Matlab 中的imadjust 函数,最后用imwrite 保存处理后的新图像。 7.对circuit.jpg 图像实施反变换(Negative Transformation )。s =1-r; 使

图形学实验报告

计 算 机 图 形 学 实验指导书 学号:1441901105 姓名:谢卉

实验一:图形的几何变换 实验学时:4学时 实验类型:验证 实验要求:必修 一、实验目的 二维图形的平移、缩放、旋转和投影变换(投影变换可在实验三中实现)等是最基本的图形变换,被广泛用于计算机图形学的各种应用程序中,本实验通过算法分析以及程序设计实验二维的图形变换,以了解变换实现的方法。如可能也可进行裁剪设计。 二、实验内容 掌握平移、缩放、旋转变换的基本原理,理解线段裁剪的算法原理,并通过程序设计实现上述变换。建议采用VC++实现OpenGL程序设计。 三、实验原理、方法和手段 1.图形的平移 在屏幕上显示一个人或其它物体(如图1所示),用交互操作方式使其在屏幕上沿水平和垂直方向移动Tx和Ty,则有 x’=x+Tx y’=y+Ty 其中:x与y为变换前图形中某一点的坐标,x’和y’为变换后图形中该点的坐标。其交互方式可先定义键值,然后操作功能键使其移动。 2.图形的缩放 在屏幕上显示一个帆船(使它生成在右下方),使其相对于屏幕坐标原点缩小s倍(即x方向和y方向均缩小s倍)。则有: x’=x*s y’=y*s 注意:有时图形缩放并不一定相对于原点,而是事先确定一个参考位置。一般情况下,参考点在图形的左下角或中心。设参考点坐标为xf、yf则有变换公式x’=x*Sx+xf*(1-Sx)=xf+(x-xf)*Sx y’=y*Sy+yf*(1-Sy)=yf+(y-yf)*Sy 式中的x与y为变换前图形中某一点的坐标,x’和y’为变换后图形中该点的坐标。当Sx>1和Sy>1时为放大倍数,Sx<1和Sy<1时为缩小倍数(但Sx和Sy

matlab图像处理图像灰度变换直方图变换

附录1 课程实验报告格式 每个实验项目包括:1)设计思路,2)程序代码,3)实验结果,4)实验中出现的问题及解决方法。 实验一:直方图灰度变换 A:读入灰度图像‘debye1.tif’,采用交互式操作,用improfile绘制一条线段的灰度值。 imread('rice.tif'); imshow('rice.tif'),title('rice.tif'); improfile,title('主对角线上灰度值')

B:读入RGB图像‘flowers.tif’,显示所选线段上红、绿、蓝颜色分量的分布imread('flowers.tif'); imshow('flowers.tif'),title('flowers.tif'); improfile,title('主对角线红绿蓝分量') C:图像灰度变化 f=imread('rice.png'); imhist(f,256); %显示其直方图 g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像) figure,imshow(g1)%将0.5到0.75的灰度级扩展到范围[0 1] g2=imadjust(f,[0.5 0.75],[0 1]); figure,imshow(g2) 图像灰度变换处理实例: g=imread('me.jpg'); imshow(g),title('原始图片'); h=log(1+double(g)); %对输入图像对数映射变换 h=mat2gray(h); %将矩阵h转换为灰度图片

h=im2uint8(h); %将灰度图转换为8位图 imshow(h),title('转换后的8位图'); 运行后的结果: 实验二:直方图变换 A:直方图显示 I=imread('cameraman.tif'); %读取图像 subplot(1,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(1,2,2),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题运行结果如下:

数字图像处理实验二 图像灰度变换

实验二 图像灰度变换实验一、 实验目的熟悉亮度变换函数的使用熟悉灰度图像的直方图的表示;掌握图像增强的基本方法:灰度变换、直方图均衡;二、实验内容灰度线性变换、灰度直方图、直方图均衡处理;灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像增强。三、实验原理1.函数imadjust 函数imadjust 是对灰度图像进行亮度变换的基本命令,语法为: g = imadjust(f, [low_in high_in], [low_out high_out], gamma) 将图像f 中的亮度值(灰度值)映射到新图像g 中,即将low_in 至high_in 之间的值映射到low_out 至high_out 之间的值。low_in 以下的灰度值映射为low_out ,high_in 以上的灰度值映射为high_out ,函数imadjust 的矩阵[ ]内参数均指定在0和1之间,[low_in high_in]和[low_out high_out]使用空矩阵[ ]会得到默认值[0 1]。若high_out 小于low_out ,则输出图像会反转。 参数gamma 指定了曲线(变换函数)的形状,若gamma 小于1,则映射被加权至更高(更亮)的输出值;若gamma 大于1,则映射被加权至更低(更暗)的输出值。若省略了函数的参量gamma ,则gamma 默认为1——即线性映 射。 >>f = imread(‘filename’)>>imshow(f)>>g1 = imadjust(f, [0 1], [1 0]); %图像反转>>figure, imshow(g1) %figure 命令表示同时显示多个窗口 >>g2 = imadjust(f, [0.5 0.75], [0 1]); %将0.5至0.75之间的灰度级扩展到范围0和1之间 >>figure, imshow(g2) >>g3 = imadjust(f, [ ], [ ], 2) %使用gamma 值 >>figure, imshow(g3)

实验一Matlab图像处理基础及图像灰度变换

实验一Matlab图像处理基础及图像灰度变换 一、实验目的 了解Matlab平台下的图像编程环境,熟悉Matlab中的DIP (Digital Image Processing)工具箱;掌握Matlab中图像的表示方法,图像类型、数据类型的种类及各自的特点,并知道怎样在它们之间进行转换。掌握Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。 二、实验内容 1.从硬盘中读取一幅灰度图像; 2.显示图像信息,查看图像格式、大小、位深等内容; 3.用灰度面积法编写求图像方图的Matlab程序,并画图; 4.把第3步的结果与直接用Matlab工具箱中函数histogram的结果进行比较,以衡量第3步中程序的正确性。 5.对读入的图像进行直方图均衡化,画出处理后的直方图,并比较处理前后图像效果的变化。 三、知识要点 1.Matlab6.5支持的图像图形格式 TIFF, JEPG, GIF, BMP, PNG, XWD (X Window Dump),其中GIF不支持写。 2.与图像处理相关的最基本函数 读:imread; 写:imwrite; 显示:imshow; 信息查看:imfinfo; 3.Matlab6.5支持的数据类 double, unit8, int8, uint16, int16, uint32, int32, single, char (2 bytes per element), logical. 4.Matlab6.5支持的图像类型 Intensity images, binary images, indexed images, RGB image 5.数据类及图像类型间的基本转换函数 数据类转换:B = data_class_name(A);

计算机图形学实验报告 (2)

中南大学信息科学与工程学院 实验报告实验名称 实验地点科技楼四楼 实验日期2014年6月 指导教师 学生班级 学生姓名 学生学号 提交日期2014年6月

实验一Window图形编程基础 一、实验类型:验证型实验 二、实验目的 1、熟练使用实验主要开发平台VC6.0; 2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的Windows图形应用程序; 3、掌握Window图形编程的基本方法; 4、学会使用基本绘图函数和Window GDI对象; 三、实验内容 创建基于MFC的Single Document应用程序(Win32应用程序也可,同学们可根据自己的喜好决定),程序可以实现以下要求: 1、用户可以通过菜单选择绘图颜色; 2、用户点击菜单选择绘图形状时,能在视图中绘制指定形状的图形; 四、实验要求与指导 1、建立名为“颜色”的菜单,该菜单下有四个菜单项:红、绿、蓝、黄。用户通过点击不同的菜单项,可以选择不同的颜色进行绘图。 2、建立名为“绘图”的菜单,该菜单下有三个菜单项:直线、曲线、矩形 其中“曲线”项有级联菜单,包括:圆、椭圆。 3、用户通过点击“绘图”中不同的菜单项,弹出对话框,让用户输入绘图位置,在指定位置进行绘图。

五、实验结果: 六、实验主要代码 1、画直线:CClientDC *m_pDC;再在OnDraw函数里给变量初始化m_pDC=new CClientDC(this); 在OnDraw函数中添加: m_pDC=new CClientDC(this); m_pDC->MoveTo(10,10); m_pDC->LineTo(100,100); m_pDC->SetPixel(100,200,RGB(0,0,0)); m_pDC->TextOut(100,100); 2、画圆: void CMyCG::LineDDA2(int xa, int ya, int xb, int yb, CDC *pDC) { int dx = xb - xa; int dy = yb - ya; int Steps, k; float xIncrement,yIncrement; float x = xa,y= ya; if(abs(dx)>abs(dy))

用matlab实现图像灰度变换课程设计

课程设计报告册 课程名称: MATLAB课程设计 课题名称:灰度变换增强 专业班级: 姓名: Bob Wang 学号: 15164 课程设计主要场所:信息楼220 时间: 指导教师:成绩:

前言 数字图像处理技术是20世界60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或变成以完成各自的计算。MATLAB中集成了功能强大的图像处理工具箱。由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。 MATLAB是一种以矩阵运算为基础的交互式程序语言,能够满足科学、工程计算和绘图的要求,与其它计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。我们学习掌握MATLAB,也可以说是在科学工具上与国际接轨。

目录 一、课程设计目的 (2) 二、设计任务及容 (2) 三、课题设计实验条件 (3) 四、涉及知识 (3) 五、具体设计过程及调试 (4) 5.1、图像的读入和显示 5.1.1、打开图像 (4) 5.1.2、显示原图像 (5) 5.1.3、图像灰度处理 (7) 5.1.4、显示灰阶后图像 (8) 5.2、直方图均衡化 5.2.1、生成直方图 (10) 5.2.2、直方图均衡化 (12) 5.3、灰度变换 5.3.1、线性变换 (9) 5.3.2、分段线性变换 (9) 5.3.3、非线性变换.................................... (9) 六、心得体会 (17) 七、参考文献 (18) 八、程序清单 (19)

数字图像处理试卷1.docx

-、单项选择题(从下列各题四个备选答案中选出一个?正确答案,并将其代号填在题前的括号内。答案选错或未作选择者,该题不得分。每小题1分,共10分) (d )1 ?一幅灰度级均匀分布的图象,其灰度范围在[0, 255],则该图象的信息量为: a. 0 b.255 c.6 d.8 (b )2?图象与灰度直方图间的对应关系是: a.—一对应 b.多对一 c.一对多 d.都不对 )3?下列算法屮属于局部处理的是: a.灰度线性变换b?二值化 c ?傅立叶变换d.中值滤波 )4 ?下列算法中属于点处理的是: a ?梯度锐化 b.二值化 c ?傅立叶变换d.中值滤波 )6.下列算法中属于图象平滑处理的是: a ?梯度锐化 b ?直方图均衡c?中值滤波 https://www.360docs.net/doc/dc1054148.html,placian 增强 )7下列图象边缘检测算子屮抗噪性能最好的是: a.梯度算子 b.Prcwitt 算子 c.Roberts 算子 d. Laplacian 算子 )8?釆用模板[?1 1]主要检测___ 方向的边缘。 a.水平b?45。 c ?垂直 d.l35° (d )9 ?二值图象屮分支点的连接数为: a.O b.l d.3 a )10?対一幅100U00像元的图象,若每像元用8 bit表示其灰度值,经霍夫曼编码后 压缩图象的数据暈为40000bit,则图象的压缩比为: a.2:l b.3:l c.4:l d.l:2 二、填空题(每空1分,共15分) 1.图像锐化除了在空间域进行外,也可在频率域进行。 2.图像处理中常用的两种邻域是4■邻域和8■邻域o 3.直方图修正法包扌舌直方图均衡和直方图规定化两种方法。 6.低通滤波法是使高频成分受到抑制而让低频成分顺利通过,从而实现图像平滑 &一般來说,采样间距越大,图象数据量一少,质量差;反之亦然。 三、名词解释(每小题3分,共15分)

matlab图像的灰度变换

实验二 图像的灰度变换 一、实验目的 1、 理解数字图像处理中点运算的基本作用; 2、 掌握对比度调整与灰度直方图均衡化的方法。 二、实验原理 1、对比度调整 如果原图像f (x , y )的灰度范围是[m , M ],我们希望对图像的灰度范围进行线性调整,调整后的图像g (x , y )的灰度范围是[n , N ],那么下述变换: []n m y x f m M n N y x g +---=),(),(就可以实现这一要求。 MATLAB 图像处理工具箱中提供的imadjust 函数,可以实现上述的线性变换对比度调整。imadjust 函数的语法格式为: J = imadjust(I,[low_in high_in], [low_out high_out]) J = imadjust(I, [low_in high_in], [low_out high_out])返回原图像I 经过直方图调整后的新图像J ,[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围,灰度范围可以用 [ ] 空矩阵表示默认范围,默认值为[0, 1]。 不使用imadjust 函数,利用matlab 语言直接编程也很容易实现灰度图像的对比度调整。但运算的过程中应当注意以下问题,由于我们读出的图像数据一般是uint8型,而在MATLAB 的矩阵运算中要求所有的运算变量为double 型(双精度型)。因此读出的图像数据不能直接进行运算,必须将图像数据转换成双精度型数据。 2、直方图均衡化 直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。 MATLAB 图像处理工具箱中提供的histeq 函数,可以实现直方图的均衡化。 三、实验内容及要求 1、 用MATLAB 在自建的文件夹中建立example2.m 程序文件。在这个文件的程序中,将girl2.bmp 图像文件读出,显示它的图像及灰度直方图(可以发现其灰度值集中在一段区

图像处理实验报告

实验报告 实验课程名称:数字图像处理 班级:学号:姓名: 注:1、每个实验中各项成绩按照10分制评定,每个实验成绩为两项总和20分。 2、平均成绩取三个实验平均成绩。 2016年 4 月18日

实验一 图像的二维离散傅立叶变换 一、实验目的 掌握图像的二维离散傅立叶变换以及性质 二、实验要求 1) 建立输入图像,在64?64的黑色图像矩阵的中心建立16?16的白色矩形图像点阵, 形成图像文件。对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。 2) 调整输入图像中白色矩形的位置,再进行变换,将原始图像及变换图像(三维、中 心化)都显示于屏幕上,比较变换结果。 3) 调整输入图像中白色矩形的尺寸(40?40,4?4),再进行变换,将原始图像及变 换图像(三维、中心化)都显示于屏幕上,比较变换结果。 三、实验仪器设备及软件 HP D538、MATLAB 四、实验原理 傅里叶变换作为分析数字图像的有利工具,因其可分离性、平移性、周期性和共轭对称性可以定量地方分析数字化系统,并且变换后的图像使得时间域和频域间的联系能够方便直观地解决许多问题。实验通过MATLAB 实验该项技能。 设),(y x f 是在空间域上等间隔采样得到的M ×N 的二维离散信号,x 和y 是离散实变量,u 和v 为离散频率变量,则二维离散傅里叶变换对一般地定义为 ∑∑ -=-=+-= 101 )],( 2ex p[),(1 ),(M x N y N yu M xu j y x f MN v u F π,1,0=u …,M-1;y=0,1,…N-1 ∑∑-=-=+=101 )],( 2ex p[),(),(M x N y N uy M ux j v u F y x f π ,1,0=x …,M-1;y=0,1,…N-1 在图像处理中,有事为了讨论上的方便,取M=N ,这样二维离散傅里叶变换对就定义为 ,]) (2ex p[),(1 ),(101 ∑∑ -=-=+- = N x N y N yu xu j y x f N v u F π 1,0,=v u …,N-1 ,]) (2ex p[ ),(1 ),(101 ∑∑-=-=+= N u N v N vy ux j v u F N y x f π 1,0,=y x ,…,N-1 其中,]/)(2exp[N yv xu j +-π是正变换核,]/)(2exp[N vy ux j +π是反变换核。将二维离散傅里叶变换的频谱的平方定义为),(y x f 的功率谱,记为 ),(),(|),(|),(222v u I v u R v u F v u P +== 功率谱反映了二维离散信号的能量在空间频率域上的分布情况。 五、实验步骤、程序及结果: 1、实验步骤: (1)、编写程序建立输入图像; (2)、对上述图像进行二维傅立叶变换,观察其频谱 (3)、改变输入图像中白框的位置,在进行二维傅里叶变换,观察频谱;

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作....................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验二:图像的灰度变换和直方图变换............................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验三:图像的平滑处理....................................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验四:图像的锐化处理......................................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。

北航数字图象处理实验报告

数字图像处理实验报告 实验二图像变换实验 1.实验目的 学会对图像进行傅立叶等变换,在频谱上对图像进行分析,增进对图像频域上的感性认识,并用图像变换进行压缩。 2.实验内容 对Lena或cameraman图像进行傅立叶、离散余弦、哈达玛变换。在频域,对比他们的变换后系数矩阵的频谱情况,进一步,通过逆变换观察不同变换下的图像重建质量情况。 3. 实验要求 实验采用获取的图像,为灰度图像,该图像每象素由8比特表示。具体要求如下: (1)输入图像采用实验1所获取的图像(Lena、Cameraman); (2)对图像进行傅立叶变换、获得变换后的系数矩阵; (3)将傅立叶变换后系数矩阵的频谱用图像输出,观察频谱; (4)通过设定门限,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换,获得逆变换后图像; (5)观察逆变换后图像质量,并比较原始图像与逆变后的峰值信噪比(PSNR)。 (6)对输入图像进行离散余弦、哈达玛变换,重复步骤1-5; (7)比较三种变换的频谱情况、以及逆变换后图像的质量(PSNR)。 4. 实验结果 1. DFT的源程序及结果 J=imread('10021033.bmp'); P=fft2(J); for i=0:size(P,1)-1 for j=1:size(P,2) G(i*size(P,2)+j)=P(i+1,j); end end Q=sort(G); for i=1:size(Q,2) if (i=size(Q,2)*0.95) t=Q(i); end end G(abs(G)

图像处理灰度变换实验

一. 实验名称:空间图像增强(一) 一.实验目的 1.熟悉和掌握利用matlab工具进行数字图像的读、写、显示、像素处理等数字图像处理的基本步骤和流程。 2.熟练掌握各种空间域图像增强的基本原理及方法。 3.熟悉通过灰度变换方式进行图像增强的基本原理、方法和实现。 4.熟悉直方图均衡化的基本原理、方法和实现。 二.实验原理 (一)数字图像的灰度变换 灰度变换是图像增强的一种经典而有效的方法。灰度变换的原理是将图像的每一个像素的灰度值通过一个函数,对应到另一个灰度值上去从而实现灰度的变换。常见的灰度变换有线性灰度变换和非线性灰度变换,其中非线性灰度变换包括对数变换和幂律(伽马)变换等。 1、线性灰度变换 1)当图像成像过程曝光不足或过度,或由于成像设备的非线性和图像记录设备动态范围太窄等因素,都会产生对比度不足的弊病,使图像中的细节分辨不清,图像缺少层次。这时,可将灰度范围进行线性的扩展或压缩,这种处理过程被称为图像的线性灰度变换。对灰度图像进行线性灰度变换能将输入图像的灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。 2)令原图像f(x,y)的灰度范围为[a,b],线性变换后得到图像g(x,y),其灰度范围为[c,d],则线性灰度变换公式可表示为

a y x f b y x f a b y x f c c a y x f a b c d d y x g <≤≤>?????+---=),(),(),(, ,]),([,),( (1) 由(1)式可知,对于介于原图像f (x,y )的最大和最小灰度值之间的灰度值,可通过线性变换公式,一一对应到灰度范围[c,d]之间,其斜率为(d-c)/(b-a);对于小于原图像的最小灰度值或大于原图像的最大灰度值的灰度值,令其分别恒等于变换后的最小和最大灰度值。变换示意图如图1所示。 图1 线性灰度变换示意图 当斜率大于一时,变换后的灰度值范围得到拉伸,图像对比度得到提高;当斜率小于一时,变换后的灰度值范围被压缩,最小与最大灰度值的差变小,图像对比度降低;当斜率等于一时,相当于对图像不做变换。 3)由上述性质可知,线性灰度变换能选择性地加强或降低特定灰度值范围内的对比度,故线性灰度变换同样也可做分段处理:对于有价值的灰度范围,将斜率调整为大于一,用于图像细节;对于不重要的灰度范围,将图像压缩,降低对比度,减轻无用信息的干扰。最常用的分段线性变换的方法是分三段进行线性变换。 在原图像灰度值的最大值和最小值之间设置两个拐点,在拐点处,原图像的灰度值分别为r 1,r 2,该拐点对应的变换后的图像的灰度值分别为s 1,s 2,另外,取原图像灰度的最小值为r 0,最大值为r m ,对应的变换后的灰度值分别为s 0,s m 。

数字图像处理实验报告

数字图像处理实验报告实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MA TLAB目录下work文件夹中的forest、tif图像文件读出、用到imread,imfinfo 等文件,观察一下图像数据,了解一下数字图像在MA TLAB中的处理就就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MA TLAB目录下work文件夹中的b747、jpg图像文件读出,用rgb2gray()将其转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程与调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程与调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别。 2)对B进行直方图均衡化处理,试比较与源图的异同。 3)对B进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。

图像灰度变换增强

图像灰度变换增强 摘要:灰度变换是基于点操作的增强方法,它将每一个像素的灰度值按照一定的数学变换公式转换为一个新的灰度值,如增强处理中的对比度增强。对比度增强可以采用线性拉伸和非线性拉伸。线性拉伸可以将原始输入图像中的灰度值不加区别地扩展。如果要求对局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理时,采用分段线性拉伸。非线性拉伸常采用对数扩展和指数扩展。对数扩展拉伸低亮度去,压缩高亮度区;指数扩展拉伸了高亮区,压缩了低亮度区。 关键词:图像增强,灰度变换,线性变换,分段线性变换,非线性变换 一. 概述 影响系统图像清晰程度的因素很多,例如室外光照度不够均匀就会造成图像灰度过于集中;由CCD (摄像头)获得的图像经过A/D (数/模转换,该功能在图像系统中由数字采集卡来实现)转换、线路传送都会产生噪声污染等等。因此图像质量不可避免的降低了,轻者表现为图像不干净,难于看清细节;重者表现为图像模糊不清,连概貌也看不出来。因此,在对图像进行分析之前,必须要对图像质量进行改善,一般情况下改善的方法有两类:图像增强和图像复原。图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征,它的目的主要是提高图像的可懂度。图像复原技术与增强技术不同,它需要了解图像质量下降的原因,首先要建立"降质模型",再利用该模型,恢复原始图像。 根据图像增强处理过程所在的空间不同,图像增强可分为空余增强法和频域增强法两大类。频域增强是在图像的某种变换域内,对图像的变换系数值进行运算,即作某种修正,然后通过逆变换获得增强了的图像。空域增强则是指直接在图像所在的二维空间进行增强处理,既增强构成图像的像素。空域增强法主要有灰度变换增强,直方图增强,图像平滑和图像锐化等。 图像的灰度变换处理是图像增强处理技术中一种非常基础,直接的空间域图像处理法,也是图像数字化软件和图像显示软件的一个重要组成部分。灰度变换是指根据某种目标条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。 二. 灰度变换处理 灰度变换的过程可表示为:)],([),(y x f T y x g ,它是指将输入图像中每个像素

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作 (4) :实验目的 (4) :实验任务和要求 (4) :实验步骤和结果 (5) :结果分析 (8) 实验二:图像的灰度变换和直方图变换 (9) :实验目的 (9) :实验任务和要求 (9) :实验步骤和结果 (9) :结果分析 (13) 实验三:图像的平滑处理 (14) :实验目的 (14) :实验任务和要求 (14) :实验步骤和结果 (14) :结果分析 (18) 实验四:图像的锐化处理 (19) :实验目的 (19) :实验任务和要求 (19) :实验步骤和结果 (19) :结果分析 (21)

实验一:数字图像的基本处理操作 :实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 :实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\'); i=rgb2gray(a); I=im2bw(a,; subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图所示:

数字图像处理知识点总结

数字图像处理知识点总结 第一章导论 1.图像:对客观对象的一种相似性的生动性的描述或写真。 2.图像分类:按可见性(可见图像、不可见图像),按波段数(单波段、多波段、超波段), 按空间坐标和亮度的连续性(模拟和数字)。 3.图像处理:对图像进行一系列操作,以到达预期目的的技术。 4.图像处理三个层次:狭义图像处理、图像分析和图像理解。 5.图像处理五个模块:采集、显示、存储、通信、处理和分析。 第二章数字图像处理的基本概念 6.模拟图像的表示:f(x,y)=i(x,y)×r(x,y),照度分量0

数字图像处理图像变换实验报告.

实验报告 实验名称:图像处理 姓名:刘强 班级:电信1102 学号:1404110128

实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件 PC机数字图像处理实验教学软件大量样图 二、实验目的 1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的 简单操作; 2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体 步骤; 3、观察图像的灰度直方图,明确直方图的作用和意义; 4、观察图像点运算和几何变换的结果,比较不同参数条件下的变换效果; 5、观察图像正交变换的结果,明确图像的空间频率分布情况。 三、实验原理 1、图像灰度直方图、点运算和几何变换的基本原理及编程实现步骤 图像灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。 图像点运算是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。点运算可以看作是“从象素到象素”的复制操作,而这种复制操作是通过灰度变换函数实现的。如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为: B(x,y)=f[A(x,y)] 其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系。一旦灰度变换函数确定,该点运算就完全确定下来了。另外,点运算处理将改变图像的灰度直方图分布。点运算又被称为对比度增强、对比度拉伸或灰度变换。点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸和均衡等。 图像几何变换是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放和图像旋转等,其理论基础主要是一些矩阵运算,详细原理可以参考有关书籍。 实验系统提供了图像灰度直方图、点运算和几何变换相关内容的文字说明,用户在操作过程中可以参考。下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:

数字图像处理报告 图像二值化

数字图像处理实验报告 实验二灰度变换 实验目的:通过实验掌握灰度变换的基本概念和方法 实验内容: 掌握基本的灰度变换:图像反转、对数变换、幂次变换和二值化1.图像反转、对数变换、幂次变换 I=imread('fengjing.jpg'); J=im2double(I); subplot(2,3,1),imshow(J); title('原图'); K=255-I; subplot(2,3,2),imshow(K); title('图象反转'); L=3.*log(1+J); subplot(2,3,3),imshow(L);title('图象对数,系数为3'); M=10.*log(1+J); subplot(2,3,4),imshow(M);title('图象对数,系数为10'); N=10.*(J.^0.2); subplot(2,3,5),imshow(N);title('图象指数变换,γ=0.2'); P=10.*(J.^2.5); subplot(2,3,6),imshow(P);title('图象指数变换,γ=2.5'); 2.图象二值化 方法一:

I=imread('fengjing.jpg'); % 确定大小subplot(1,2,1),imshow(I);title('原图象'); [m,n]=size(I); for i=1:m for j=1:n if I(i,j)<128 I(i,j)=0; else I(i,j)>=128 & I(i,j)<256 I(i,j)=255; end end end subplot(1,2,2),imshow(I);title('图象二值化');方法二: I=imread('fengjing.jpg'); % 确定大小subplot(1,2,1),imshow(I);title('原图象'); J=find(I<128); I(J)=0; J=find(I>=128); I(J)=255; title('图像二值化(阈值为128)'); subplot(1,2,2),imshow(I);title('图象二值化');

相关文档
最新文档