数字图像处理实验指导书+2014.doc
文本预览下载声明
实验一 Matlab图像基本操作及C之间转换
一、实验目的
熟悉利用Matlab进行图像处理的基本操作,了解图像数据的存储形式及进行图像处理编程的步骤方法。
二、实验内容
矩阵赋值、求最大值等操作( 见上传的.m文件),转换为C语言。
三、实验要求
1、编写代码,完成各项实验内容
2、总结实验中遇到问题及解决方案,书写实验报告
1#includestudio.h
int main()
{
int a[4]={1,4,7,3};
int i,t,j;
for(i=0;i4;i++)
if(a[i]a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t}
printf(%d,a[3]);
return 0;
}
2
#includestudio.h
int main()
{
int result,i;
result=1;
i=2;
while(i=10)
{
result=result*i;
i=i+1
}
printf(%d\n,result);
return 0;
}
3
#includestudio.h
int main()
{
int r,i;
r=1;
i=2;
if(i1000)
{r=r*i;
i++;}
else
break;
printf(%d\n,r);
return 0;
}
实验二 两种直方图运算的实现
一、实验目的
巩固图像处理编程的步骤格式,理解图像直方图的原理,掌握图像直方图的实现方法。
二、实验内容
从图像的行列扫描以及直方图的灰度扫描两种思路进行编程
比较两种实现方法的复杂度,并计算两种方法的完成时间。
三、实验要求
1、编写代码,完成各项实验内容
2、总结实验中遇到问题及解决方案,书写实验报告
1.clc,clear;
A=imread(lena.bmp);
B=rgb2gray(A);
C=double(B);
h=zeros(1,256);
for i=0:255
h(i+1)=length(find(B==i));
end
figure(1)
bar(h)
2. clc,clear;
A=imread(lena.bmp);
B=rgb2gray(A);
C=double(B);
s=size(C);
h=zeros(1,256);
for i=1;s(1);
for j=1:s(2);
k=B(i,j);
k=floor(k);
h(k+1)=h(k+1)+1;
end
end
subplot(2,2,1);imshow(B)
subplot(2,2,2);plot(h)
实验三 直方图的C语言转换
一、实验目的
理解图像灰度变换和直方图的概念,掌握灰度变换和直方图均衡化的原理及实现方法。
二、实验内容
直方图
绘制直方图,观察图像效果与直方图的关系
三、实验要求
1、编写代码,完成各项实验内容
2、总结实验中遇到问题及解决方案,书写实验报告
//将所有的直方图数组清0
int h[256];
for(i = 0; i 256; i++)
h[i] = 0;
//遍历图像,计算直方图数组
for(y = 0; y H; y++)
{
for(x = 0; x W; x++)
{
unsigned char r = ImageData[y*W + x];
h[r] = h[r] + 1;
}
}
实验四 直方图均衡化
一、实验目的
理解图像灰度变换和直方图的概念,掌握灰度变换和直方图均衡化的原理及实现方法。
二、实验内容
线性灰度变换
非线性变换
,修改指数观察图像效果,总结指数项合理取值的一般规律
直方图
绘制直方图,观察图像效果与直方图的关系
直方图均衡化
利用直方图均衡化确定灰度变换关系,画出变换曲线及图像处理前后的直方图
三、实验要求
1、编写代码,完成各项实验内容
2、总结实验中遇到问题及解决方案,书写实验报告
实验五 彩色空间的人脸检测
一、实验目的
理解彩色空间和肤色分割的原理
分割人脸,并确定人脸在图像中的位置。
二、实验准备
复习HSV或者YUV彩色空间的定义,了解彩色空间变换的实现思路
学习如何界定人脸肤色。
三、实验内容与步骤
RGB空间转换到HSV或者YUV彩色空间;
扫描像素点,在人脸肤色范围里的像素点,标识出来。
小的连通区域或者孤立点,进行形态学处理。
人脸区域的图像显示出来,其他区
显示全部