第二次 数字图像处理实验报告
数字图像处理实验实验报告 实验二

数字图像处理实验实验报告(实验一)一、实验目的:1、直方图显示2、计算并绘制图像直方图3、直方图均衡化二.程序脚本clear all;RGB=imread('me.jpg');figure;imshow(RGB);title('图1 彩色图');%========================================================== I=rgb2gray(RGB);figure;imshow(I);title('图2 灰度图');%========================================================= figure;imhist(I);title('灰度直方图');%========================================================= hi=imhist(I);j=1;%为使画出的直方图更好看,在此进行了抽样for(i=1:256)if(mod(i,10)==1)h(j)=hi(i);j=j+1;endendn=0:10:255;figure;stem(n,h);axis([0 255 0 2500]);title('图3.1 stem显示直方图');figure;bar(n,h);axis([0 255 0 2500]);title('图3.2 bar显示直方图');figure;plot(n,h);axis([0 255 0 2500]);title('图3.3 plot显示直方图');%========================================================= I=rgb2gray(RGB);figure;subplot(3,2,1);imshow(I);title('图4.1 原始灰度图');subplot(3,2,2);imhist(I);title('图4.2 原始灰度直方图');%=============================J1=imadjust(I);subplot(3,2,3);imshow(J1);title('调整对比度以后的图');subplot(3,2,4);imhist(J1);title('调整对比度以后的灰度直方图');%=================================J2=histeq(I);subplot(3,2,5);imshow(J2);title('均衡化以后的的图');subplot(3,2,6);imhist(J2);title('均衡化以后的灰度直方图');三.实验结果图1 彩色图图2 灰度图010002000灰度直方图10020010020005001000150020002500图3.1 stem 显示直方图10020005001000150020002500图3.2 bar 显示直方图10020005001000150020002500图3.3 plot 显示直方图图4.1 原始灰度图10002000图4.2 原始灰度直方图0100200调整对比度以后的图010002000调整对比度以后的灰度直方图0100200均衡化以后的的图02000均衡化以后的灰度直方图100200。
《数字图像处理》实验报告

《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。
在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。
首先,我们进行了图像的读取和显示实验。
通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。
这为我们后续的实验奠定了基础。
同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。
这使我们能够更好地理解后续实验中的算法和操作。
接下来,我们进行了图像的灰度化实验。
灰度化是将彩色图像转换为灰度图像的过程。
在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。
通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。
随后,我们进行了图像的直方图均衡化实验。
直方图均衡化是一种用于增强图像对比度的方法。
在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。
通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。
在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。
滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。
在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。
通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。
此外,我们还进行了图像的边缘检测实验。
边缘检测是一种用于提取图像边缘信息的方法。
在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。
通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。
最后,我们进行了图像的压缩实验。
图像压缩是一种将图像数据进行压缩以减小文件大小的方法。
数字图像处理实验2

等,使用多维滤波器H对图像A进行滤波,H常由函数fspecial输出得到。属性参
数如表3所示: 表3 imfilter函数参数表
参数类型
参数
含义
边界选项
‘X’
输入图像的外部边
界通过X来扩展,默
认的X=0
‘symmetric’
输入图像的外部边
3×3。
输出大小选项
滤波方式选项
(8)medfilt2函数
三、Matlab相关函数介绍
(1)imhist函数 功能:统计变显示图像的直方图。 调用格式: imhist(I):显示图像I的直方图。 imhist(I, n):显示图像I的直方图,n指定直方图中的列数。 [COUNTS,X] = imhist(...):返回直方图数据向量COUNTS和相应的色彩值向量X。 (2)histeq函数 功能:直方图均衡化 调用格式: J = histeq(I,hgram):将图像I的直方图变成用户指定的向量hgram,hgram中的各元素值域为[0,1]; J = histeq(I,N):对原始图像I进行直方图均衡化,N为输出图像的灰度技术,默认N为64。 (3)imadjust函数 功能:调整图像灰度值或颜色映射表,增加图像的对比度。 调用格式: J = imadjust(I,[LOW_IN; HIGH_IN],[LOW_OUT; HIGH_OUT],GAMMA):调整图像I的灰度值;[LOW_IN; HIGH_IN]指定原始图像中要变换的灰度范围;[LOW_OUT; HIGH_OUT]指定变换后的灰度范围;低于LOW_IN 、高于 HIGH_IN 的采取截取式;都可以使用空的矩阵[],默认值是[0 1]; GAMMA为标量,指定描述值I和值J关系的曲线 形状,如果小于1,此映射偏重更高数值(明亮)输出,如果
数字图像处理实验二_图像的噪声抑制及锐化处理

数字图像处理实验报告(二)班级:测控1002姓名:刘宇学号:06102043实验二图像的噪声抑制及锐化处理1. 实验任务(1)了解并掌握图像的噪声抑制及锐化处理的基本原理;(2)编写程序使用均值滤波、中值滤波方法进行图像噪声抑制,根据实验结果分析效果;(3)编写程序使用一阶微分锐化、二阶微分锐化方法进行图像的锐化处理,根据实验结果分析效果;(4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。
2. 实验环境及开发工具Windws2000/XPMATLAB 7.x实验原理线性平滑滤波器线性低通平滑滤波器也称为均值滤波器,这种滤波器的所有系数都是正数,对3×3的模板来说,最简单的是取所有系数为1,为了保持输出图像任然在原来图像的灰度值范围内,模板与象素邻域的乘积都要除以9。
MATLAB 提供了fspecial 函数生成滤波时所用的模板,并提供filter2 函数用指定的滤波器模板对图像进行运算。
函数fspecial 的语法格式为:h=fspecial(type);h=fspecial(type,parameters);其中参数type 指定滤波器的种类,parameters 是与滤波器种类有关的具体参数。
MATLAB 提供了一个函数imnoise 来给图像增添噪声,其语法格式为:J=imnoise(I,type);J=imnoise(I,type,parameters);非线性平滑滤波器中值滤波器是一种常用的非线性平滑滤波器,其滤波原理与均值滤波器方法类似,但计算的非加权求和,而是把领域中的图像的象素按灰度级进行排序,然后选择改组的中间值作为输出象素值。
MATLAB 提供了medfilt2 函数来实现中值滤波,其语法格式为:B=medfilt2(A,[m n]);B=medfilt2(A);其中,A 是原图象,B 是中值滤波后输出的图像。
[m n]指定滤波模板的大小,默认模板为3×3。
数字图像处理实验二报告(图像滤波器)

实验报告课程名称数字图像处理实验名称图像滤波器姓名学号 20120712 专业班级数媒1202 实验日期 2014 年 10 月 16日成绩指导教师一、实验目的1.继续熟悉仿真工具MATLAB2.巩固图像读取与显示的方法3.掌握给图像添加噪声的方法4.掌握图像空间域的滤波方法5.掌握图像频率域的滤波方法二、实验原理图像的平滑有模糊图像和消除噪声的功能。
图像锐化则是使模糊的图像变清晰,增强图像的边缘细节。
对图的处理像既可以在频率域内进行,又可在空间域进行(一般为模版卷积方式)。
从信号频谱角度来讲,信号缓慢变化的部分(大面积背景区和灰度变化缓慢的区域)在频域表现为低频,迅速变化的部分(图像边缘、跳跃以及噪声等灰度变化剧烈的区域)则表现为高频。
因此,通过低通滤波来实现图像的平滑,而高通滤波可以实现图像的锐化。
三、实验环境Windows XP/ Windows 7Matlab 7.0.1/ Matlab R2008四、实验内容与步骤1.空间平滑域操作读取并显示一幅灰度图像,对原图像分别添加高斯噪声和椒盐噪声,并显示添加噪声之后的图像:调整高斯噪声和椒盐噪声的参数,比较不同参数之间噪声的区别;进行平滑操作,观察、记录并比较实验结果;针对两幅含有噪声的图像,采用中值滤波方法进行平滑处理,观察并记录实验结果,并将之与上一步实验结果相比较,得出结论。
2.空间锐化操作读取并显示一幅灰度图像,分别采用Prewitt水平/垂直边缘检测算子,Sobel水平/垂直边缘检测算子对原图像进行锐化操作,比较实验结果;采用拉普拉斯模板进行锐化处理,与上一步骤实验结果相比较。
3.图形的频域处理1)利用循环语句,自己构建理想低通滤波器;对一幅弧度图像进行傅里叶变换,显示其频谱图;对一幅灰度图像作频率域理想低通滤波,调整滤波器半径,观察并记录不同结果,分析原因;2)利用循环语句,自己构建理想高通滤波器;对同一幅灰度图像作频率域理想高通滤波,调整滤波器半径,观察并记录不同结果,分析原因;五、实验结果与分析(可提供屏幕抓图)1.添加高斯噪声与椒盐噪声:结论:高斯噪声的参数越大,图像变得越模糊,亮度也越亮。
数字图像处理实验报告(五个实验全)

数字图像处理实验报告(五个实验全)实验⼀ Matlab图像⼯具的使⽤1、读图I=imread('lena.jpg');imshow(I);2、读⼊⼀幅RGB图像,变换为灰度图像和⼆值图像,并在同⼀个窗⼝内分成三个⼦窗⼝来分别显⽰RGB图像和灰度图像。
a=imread('lena.jpg')i = rgb2gray(a)I = im2bw(a,0.5)subplot(3,1,1);imshow(a);subplot(3,1,2);imshow(i);subplot(3,1,3);imshow(I);原图像灰度图像⼆值图像实验⼆图像变换1、对⼀幅图像进⾏平移,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与平移后傅⾥叶频谱的对应关系。
s=imread('beauty.jpg');i=rgb2gray(s)i=double(i)j=fft2(i);k=fftshift(j); 原图像原图的傅⾥叶频谱l=log(abs(k));m=fftshift(j);RR=real(m);II=imag(m);A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=circshift(s,[800 450]);b=rgb2gray(b)b=double(b) 平移后的图像平移后的傅⾥叶频谱c=fft2(b);e=fftshift(c);l=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);subplot(2,2,2);imshow(uint8(b));subplot(2,2,3);imshow(A);subplot(2,2,4);imshow(B);2、对⼀幅图像进⾏旋转,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与旋转后傅⾥叶频谱的对应关系。
数字图像处理实验报告

数字图像处理实验报告实验一数字图像的获取一、实验目的1、了解图像的实际获取过程。
2、巩固图像空间分辨率和灰度级分辨率、邻域等重要概念。
3、熟练掌握图像读、写、显示、类型转换等matlab函数的用法。
二、实验内容1、读取一幅彩色图像,将该彩色图像转化为灰度图像,再将灰度图像转化为索引图像并显示所有图像。
2、编程实现空间分辨率变化的效果。
三、实验原理1、图像读、写、显示I=imread(‘image.jpg’)Imview(I)Imshow(I)Imwrite(I,’wodeimage.jpg’)2、图像类型转换I=mat2gray(A,[amin,amax]);按指定的取值区间[amin,amax]将数据矩阵A转化为灰度图像I,amin对应灰度0,amax对应1,也可以不指定该区间。
[x,map]=gray2ind(I,n);按指定的灰度级n将灰度图像转化为索引图像,n默认为64I=ind2gray(x,map);索引图像转化为灰度图像I=grb2gray(RGB);真彩色图像转化为灰度图像[x,map]=rgb2ind(RGB);真彩色图像转化为索引图像RGB=ind2rgb(x,map);索引图像转化为真彩色图像BW=im2bw(I,level);将灰度图像转化为二值图像,level取值在[0,1]之间BW=im2bw(x,map,level);将索引图像转化为二值图像,level取值在[0,1]之间BW=im2bw(RGB,level);将真彩色图像转化为二值图像,level取值在[0,1]之间四、实验代码及结果1、in=imread('peppers.png');i=rgb2gray(in);[x,map]=gray2ind(i,128);subplot(131),imshow(in)subplot(132),imshow(i)subplot(133),imshow(x),colormap(map)2、%空间分辨率变化的效果clc,close all,cleari=imread('cameraman.tif');i=imresize(i,[256,256]);i1=i(1:2:end,1:2:end);[m1,n1]=size(i)i2=i1(1:2:end,1:2:end);[m2,n2]=size(i2)i3=i2(1:2:end,1:2:end);[m3,n3]=size(i3)subplot(221),imshow(i),xlabel('256x256')subplot(222),imshow(i1),xlabel('128x128')subplot(223),imshow(i2),xlabel('64x64')subplot(224),imshow(i3),xlabel('32x32')256 x 256128 x 12864 x 6432 x 32实验二图像的几何变换一、实验目的掌握图像的基本几何变换的方法1、图像的平移2、图像的旋转二、实验内容练习用matalb 命令实现图像的平移、旋转操作1、.编写实现图像平移的函数2、用imread 命令从你的硬盘读取一幅256×256灰度图;3、调用平移函数,将256×256灰度图平移100行200列,在同一个窗口中显示平移前和平移后的图像。
数字图像处理实验报告

数字图像处理实验报告引言数字图像处理是一门研究如何对图像进行数字化处理的学科,它的应用广泛,涵盖了图像的获取、增强、压缩、分割等多个方面。
本次实验旨在探索数字图像处理的基本原理和常用技术,并通过实践操作加深对数字图像处理的理解。
实验目的1.学习掌握数字图像处理的基本原理;2.熟悉常用的数字图像处理工具和方法;3.实践应用数字图像处理技术解决实际问题。
实验环境在本次实验中,我们使用了以下环境和工具:- 操作系统:Windows 10 - 编程语言:Python - 图像处理库:OpenCV实验步骤步骤一:图像获取与显示首先,我们需要获取一张待处理的图像,并对其进行显示。
在Python中,我们可以使用OpenCV库来实现图像的读取和显示。
以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 显示图像cv2.imshow('Image', image)cv2.waitKey(0)cv2.destroyAllWindows()步骤二:图像增强图像增强是数字图像处理中常用的技术之一,旨在改善图像的质量和可视化效果。
常见的图像增强技术包括灰度转换、直方图均衡化、滤波器等。
以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 灰度转换gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GR AY)# 直方图均衡化equalized_image = cv2.equalizeHist(gray_image)# 高斯滤波器blurred_image = cv2.GaussianBlur(equalized_image, (5, 5), 0)# 边缘增强enhanced_image = cv2.Canny(blurred_image, 100, 20 0)# 显示图像cv2.imshow('Enhanced Image', enhanced_image)cv2.waitKey(0)cv2.destroyAllWindows()步骤三:图像压缩图像压缩是数字图像处理中的重要话题,旨在减少图像的存储空间和传输带宽。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
1.熟悉图像点运算和代数运算的实现方法
2.了解图像几何运算的简单应用
3.了解图像的邻域操作
二、实验环境
1、机器硬件配置:
CPU :英特尔酷睿i5-2410M 2.30GHz
内存: 4.00GB
显卡: NVIDIA GeForce GT 550M+Intel GMA HD 主硬盘:750GB SATA
2、操作系统版本:windows 7
3、软件版本、配置: matlab7.0
三、实验内容
1.图像点运算
2.图像的代数运算
3.图像的集合运算
4.图像的领域运算
5.思考题
四、实验内容
1.图像点运算
读入图像‘rice.png’,通过图像点运算改变对比度。
rice=imread('rice.png');
subplot(131),imshow(rice)
I=double(rice); %转换为双精度类型
J=I*0.43+60;
rice2=uint8(J); %转换为uint8
subplot(132),imshow(rice2)
J=I*1.5-60;
rice3=uint8(J); %转换为uint8
subplot(133),imshow(rice3)
2.图像的代数运算
A)图像加法运算
I=imread('rice.png');
imshow(I)
J=imread('cameraman.tif');
figure,imshow(J)
K=imadd(I,J);
figure,imshow(K)
K2=imadd(I,J,'uint16');
figure,imshow(K2,[])
RGB=imread('flowers.tif');
RGB2=imadd(RGB,50);
imshow(RGB)
figure,imshow(RGB2)
RGB3=imadd(RGB,100);
figure,imshow(RGB3)
RGB=imread('autumn.tif'); RGB2=imadd(RGB,50);
imshow(RGB)
figure,imshow(RGB2)
RGB3=imadd(RGB,100);
figure,imshow(RGB3)
I=imread('rice.png');
imshow(I)
background = imopen(I,strel('disk',15)); %估计背景图像figure, imshow(background);
I2=imsubtract(I,background); %从原始图像中减去背景图像figure, imshow(I2)
B)图像乘法运算
I=imread('moon.tif');
J=immultiply(I,1.2);
K=immultiply(I,0.5);
imshow(I)
figure,imshow(J)
figure,imshow(K)
3.图像的几何运算
C)图像缩放
读入图像‘trees.tif’,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。
I=imread('trees.tif');
J=imresize(I,1.25);
K=imresize(I,0.8);
imshow(I)
figure,imshow(J)
figure,imshow(K)
Y=imresize(I,[100,150]);
figure,imshow(Y)
在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');
figure,imshow(I);
scale = 0.5;
J = imresize(I,scale);
figure,imshow(J);
D)图像旋转
将上述图像顺时针和逆时针旋转任意角度,观察显示效果。
I=imread('trees.tif');
J=imrotate(I,30,'bilinear');
J1=imrotate(I,30,'bilinear','crop');
imshow(I)
figure,imshow(J)
figure,imshow(J1)
J2=imrotate(I,-15,'bilinear');
figure,imshow(J2)
在matlab环境中,程序首先读取图像,然后调用图像旋转函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');
figure,imshow(I);
theta = 30;
K = imrotate(I,theta); % Try varying the angle, theta.
figure, imshow(K)
E)图像剪切
通过交互式操作,从一幅图像中剪切一个矩形区域。
I=imread('autumn.tif');
imshow(I);
I1=imcrop;
figure,imshow(I1)
I2=imcrop(I,[30 60 120 160]);
figure,imshow(I2)
4.图像的邻域操作
读入图像‘tire.tif’,分别使用函数nlfilter和blkproc对图像进行滑动邻域操作和分离邻域操作。
I=imread('tire.tif');
f=inline('max(x(:))'); %构造复合函数
I2=nlfilter(I,[3 3],f); %滑动邻域操作
imshow(I)
figure,imshow(I2)
I=imread('tire.tif');
f=inline('uint8(round(mean2(x)*ones(size(x))))'); %构造复合函数
I2=blkproc(I,[8 8],f); %滑动邻域操作
imshow(I)
figure,imshow(I2)
5.思考题
1.点运算和代数运算的实现方法各是怎样的?
答:点运算是通过对图像中每个像素值进行计算,改善图像显示效果的操作,也称对比度增强,对比度拉伸,灰度变换,可以表示为B(x,y)=f(A(x,y))。
进行逐点运算,输入映射为输出,不改变图像像素的空间关系。
代数运算是指对两幅输入图像进行点对点的加、减、乘或除运算而得到输出图像的运算。
对于相加和相乘的情形,可能不止有两幅图像参加运算。