数字图像处理MATLAB作业(3)
matlab 数字图像处理程序例题作业解答
实验报告课程名称数字音视频实验实验项目数字图像处理实验专业电子信息工程班级 3姓名张文婧学号08080305 指导教师吴娱实验成绩2011年4月15日一、实验目的:1、掌握MATLAB的基本绘图函数。
2、掌握绘图函数的用法、简单图形标注、简单颜色设定。
二、实验要求:独立进行实验,完成实验报告。
三、实验内容:1、MATLAB简介:MATLAB语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。
2、MATLAB的绘图功能:(1)单窗口单曲线绘图x=[0, 0.58,0.84,1,0.91,0.6,0.14]plot (x)(2)单窗口多曲线绘图t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,t,y1,t,y2)(3)单窗口多曲线分图绘图t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,t,y1,t,y2)subplot(1,3,1); plot(t,y)subplot(1,3,2); plot(t,y1)subplot(1,3,3); plot(t,y2)t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); plot(t,y,t,y1,t,y2)subplot(3,1,1); plot(t,y)subplot(3,1,2); plot(t,y1)subplot(3,1,3); plot(t,y2)(4)多窗口绘图t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); plot(t,y)figure(2)plot(t,y1)figure(3)plot(t,y2)(5)可任意设置颜色与线型t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); subplot(1,3,1);plot(t,y,'r-')subplot(1,3,2);plot(t,y1,'g:')subplot(1,3,3);plot(t,y2,'b*')(6)图形加注功能t=0:0.1:10y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--'); x=[1.7*pi;1.6*pi];y=[-0.3;0.8];s=['sin(t)';'cos(t)'];text(x,y,s);title('正弦和余弦曲线');legend('正弦','余弦')xlabel('时间t'),ylabel('正弦、余弦') gridaxis squarefill-基本二维绘图函数x=[1 2 3 4 5];y=[4 1 5 1 4];fill(x,y,'r')绘制阶梯曲线x=0:pi/20:2*pi;y=sin(x);stairs(x,y)绘制极坐标绘图t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y)绘制火柴杆绘图t=0:0.2:2*pi; y=cos(t); stem(y)绘制直方图t=0:0.2:2*pi; y=cos(t); bar(y)绘制彗星曲线图t= -pi:pi/500:pi;y=tan(sin(t))-sin(tan(t)); comet(t,y)绘制三维线形图t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),'r:')三维多边形y1=rand(3,5);y2=rand(3,5);y3=rand(3,5);fill3(y1,y2,y3,'m');hold on;plot3(y1,y2,y3,'yo')矩阵的三维网线图z=rand(6);0.8808 0.0729 0.4168 0.7694 0.3775 0.47760.3381 0.7101 0.0964 0.6352 0.3826 0.7086 0.1895 0.8791 0.6747 0.8965 0.6876 0.2380 0.7431 0.3594 0.5626 0.8784 0.1217 0.3910 0.7189 0.0899 0.8130 0.4865 0.0768 0.9759 0.8792 0.1610 0.8782 0.1131 0.1433 0.6288 z=round(z)1 0 0 1 0 00 1 0 1 0 10 1 1 1 1 01 0 1 1 0 01 0 1 0 0 11 0 1 0 0 1mesh(z);不出图…meshgrid——网线坐标值计算函数x=-5:5; y=x;[X,Y]=meshgrid(x,y)Z=X.^2+Y.^2mesh(X,Y,Z)三维曲面图x=-5:5; y=x;[X,Y]=meshgrid(x,y)Z=X.^2+Y.^2surf(X,Y,Z)练习1(1)在同一幅图上的(-pi,pi)区间,用0.5的间隔绘制sinx的红色曲线,用0.1的间隔绘制sin(x+0.5)的绿色曲线,用0.01的间隔绘制sin(x+1)的蓝色曲线。
数字图像处理与应用(MATLAB版)课后题答案
第一章1. 什么是图像?如何区分数字图像和模拟图像?模拟图像和数字图像如何相互转换?答:图像是当光辐射能量照在物体上,经过反射或透射,或由发光物体本身发出的光能量,在人的视觉器官中所重现出的物体的视觉信息。
数字图像将图像看成是许多大小相同、形状一致的像素组成。
这样,数字图像可以用二维矩阵表示。
将自然界的图像通过光学系统成像并由电子器件或系统转化为模拟图像(连续图像)信号,再由模拟/数字转化器(ADC)得到原始的数字图像信号。
图像的数字化包括离散和量化两个主要步骤。
在空间将连续坐标过程称为离散化,而进一步将图像的幅度值(可能是灰度或色彩)整数化的过程称为量化。
2. 什么是数字图像处理?答:数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
3. 数字图像处理系统有哪几部分组成?各部分的主要功能和常见设备有哪些?答:一个基本的数字图像处理系统由图像输入、图像存储、图像输出、图像通信、图像处理和分析5个模块组成,如下图所示。
各个模块的作用分别为:图像输入模块:图像输入也称图像采集或图像数字化,它是利用图像采集设备(如数码照相机、数码摄像机等)来获取数字图像,或通过数字化设备(如图像扫描仪)将要处理的连续图像转换成适于计算机处理的数字图像。
图像存储模块:主要用来存储图像信息。
图像输出模块:将处理前后的图像显示出来或将处理结果永久保存。
图像通信模块:对图像信息进行传输或通信。
图像处理与分析模块:数字图像处理与分析模块包括处理算法、实现软件和数字计算机,以完成图像信息处理的所有功能。
4. 试述人眼的主要特性。
答:(1)、人眼的视觉机理。
视网膜上有大量的杆状细胞和锥状细胞,锥状细胞能辨别光的颜色,而杆状细胞感光灵敏度高,但不能辨色。
(2)、人眼的视敏特性。
指人眼对不同波长的光具有不同的敏感程度。
(3)、人眼的亮度感觉。
亮度感觉范围指人眼所能感觉到的最大亮度与最小亮度之间的范围。
数字图像处理及matlab实现
THANKS
05 数字图像处理的应用案例
医学影像处理
1 2 3
医学影像诊断
数字图像处理技术可以用于医学影像的预处理、 增强、分割和识别,帮助医生更准确地诊断疾病。
医学图像重建
通过数字图像处理技术,可以从低质量的医学图 像中重建出高质量的图像,提高医学影像的清晰 度和诊断价值。
医学图像配准与融合
数字图像处理技术可以实现不同模态医学图像之 间的配准与融合,提供更全面的医学信息。
离散余弦变换
将图像从空间域转换到余弦函数构成的系数矩阵,用于数据压缩 和去噪。
Matlab中的图像恢复实现
超分辨率
通过多幅低分辨率图像合成一幅高分辨率图 像,提高图像的分辨率。
去噪
利用各种滤波技术去除图像中的噪声,恢复 原始图像。
失真校正
对由于拍摄、传输等原因造成的图像失真进 行校正,提高图像质量。
数字图像处理及 Matlab实现
目录
Contents
• 数字图像处理基础 • Matlab基础 • 数字图像处理技术 • Matlab在数字图像处理中的应用 • 数字图像处理的应用案例
01 数字图像处理基础
图像的数字化
总结词
将连续的图像转化为离散的像素点阵列。
详细描述
通过将连续的图像转化为离散的像素点阵列,数字图像处理能够将图像信息转 化为计算机能够处理的数字信息。每个像素点由其位置和灰度值表示,形成数 字图像。
图像的灰度级别
总结词
描述像素的亮度级别。
详细描述
图像的灰度级别决定了像素的亮度范围。灰度级别越高,图像的亮度范围越丰富, 细节表现力越强。常见的灰度级别有256级(0-255)和16级(0-15)。
数字图像处理实验(MATLAB版)
数字图像处理(MATLAB版)实验指导书(试用版)湖北师范学院教育信息与技术学院2009年4月试行目录实验一、数字图像获取和格式转换 2 实验二、图像亮度变换和空间滤波 6 实验三、频域处理7 实验四、图像复原9 实验五、彩色图像处理10 实验六、图像压缩11 实验七、图像分割13 教材与参考文献14《数字图像处理》实验指导书实验一、数字图像获取和格式转换一、实验目的1掌握使用扫描仪、数码相机、数码摄像级机、电脑摄像头等数字化设备以及计算机获取数字图像的方法;2修改图像的存储格式;并比较不同压缩格式图像的数据量的大小。
二、实验原理数字图像获取设备的主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等。
各类设备都标明了它的光学分辨率和最大分辨率。
分辨率的单位是dpi,dpi是英文Dot Per Inch的缩写,意思是每英寸的像素点数。
扫描仪扫描图像的步骤是:首先将欲扫描的原稿正面朝下铺在扫描仪的玻璃板上,原稿可以是文字稿件或者图纸照片;然后启动扫描仪驱动程序后,安装在扫描仪内部的可移动光源开始扫描原稿。
为了均匀照亮稿件,扫描仪光源为长条形,并沿y方向扫过整个原稿;照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x方向的光带,又经过一组反光镜,由光学透镜聚焦并进入分光镜,经过棱镜和红绿蓝三色滤色镜得到的RGB三条彩色光带分别照到各自的CCD上,CCD将RGB光带转变为模拟电子信号,此信号又被A/D变换器转变为数字电子信号。
至此,反映原稿图像的光信号转变为计算机能够接受的二进制数字电子信号,最后通过串行或者并行等接口送至计算机。
扫描仪每扫一行就得到原稿x方向一行的图像信息,随着沿y方向的移动,在计算机内部逐步形成原稿的全图。
扫描仪工作原理见图1.1。
图1.1扫描仪的工作原理在扫描仪的工作过程中,有两个元件起到了关键的作用。
一个是CCD,它将光信号转换成为电信号;另一个是A/D变换器,它将模拟电信号变为数字电信号。
数字图像处理实验matlab3
5.已知一图象p306,设计一高通滤波器将其退化,然后利用高通滤波器的系统函数作为退化函数,采用逆滤波方式将其重新复原。
高通滤波器的截止频率自行设定。
原理:此题先进行傅立叶变换后高通滤波,再傅立叶反变换得到退化图象,再傅立叶变换,最后逆滤波。
这里要用到傅立叶变换,高通滤波及图象复原知识。
1) 理想高通滤波器(IHPF)设计理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器 理想高通滤波器图2.25 理想高通滤波器透视图傅立叶变换傅立叶变换是数字图像处理中应用最广的一种变换,其中图像增强、图像复原和图像分析与描述等,每一类处理方法都要用到图像变换,尤其是图像的傅立 叶变换。
离散傅立叶(Fourier )变换的定义: 二维离散傅立叶变换(DFT )为:逆变换为:式中,在DFT 变换对中, 称为离散信号 的频谱,而 称为幅度谱,为相位角,功率谱为频谱的平方,它们之间的关系为:图像的傅立叶变换有快速算法。
逆滤波:则∑∑-=-=+-=101)(2exp ),(1),(M x N y NvyM ux j y x f MN v u F π∑∑-=-=+=101)(2exp ),(1),(M u N v Nvy M ux j v u F MN y x f π}1,,1,0{,-∈M x u }1,,1,0{,-∈N y v ),(v u F ),(y x f ),(v u F ),(v u ϕ),(),()],(exp[),(),(v u jI v u R v u j v u F v u F +==ϕ),(),(),(v u H v u G v u F =1/H (u ,v )称为逆滤波器。
对上式再进行傅立叶反变换可得到f (x ,y )。
但实际上碰到的问题都是有噪声的,因而只能求F (u ,v )的估计值:然后再作傅立叶逆变换,得这就是逆滤波复原的基本原理。
其复原过程可归纳如下:(1)对退化图像g (x ,y )作二维离散傅立叶变换,得到G (u ,v )。
(完整版)数字图像处理MATLAB程序【完整版】
第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
数字图像处理实验程序MATLAB
实验一内容(一)(1)彩色图像变灰度图像A=imread('1.jpg');B=rgb2gray(A);figuresubplot(1,2,1),imshow(A)title('原图')subplot(1,2,2),imshow(B)title('原图灰度图像')(2)彩色图像变索引图像A=imread('1.jpg');figuresubplot(1,2,1),imshow(A)title('原图')[X,map]=rgb2ind(A,128);subplot(1,2,2),imshow(X,map)title('原图索引图像')(3)彩色图像变二值图像A=imread('1.jpg');figuresubplot(1,2,1),imshow(A)title('原图')C=im2bw(A,0.2);subplot(1,2,2),imshow(C)title('原图二值图像')(4)灰度图像变索引图像(一)A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')C=grayslice(B,39);subplot(1,2,2),imshow(C)title('灰度变索引图像')(5)灰度图像变索引图像(二)A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')[X,map]=gray2ind(B,63);subplot(1,2,2),imshow(X,map)title('灰度变索引图像')(6)灰度图像变彩色图像A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')C=gray2rgb(B,map);subplot(1,2,2),imshow(C)title('灰度变彩色图像')内容(二)(1)灰度平均值A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')B=double(B);[m,n]=size(B);sumg=0.0;for i=1:m;for j=1:n;sumg=sumg+B(i,j);endendavg=sumg/(m*n) % 均值maxg=max(max(B)) % 区域最大灰度ming=min(min(B)) % 区域最小灰度(2)彩色平均值figureimshow(A)title('彩色图像')A=double(A);[m,n]=size(A);sumg=0.0;for i=1:m;for j=1:n;sumg=sumg+A(i,j);endendavg=sumg/(m*n)squre=m*nmaxg=max(max(A))ming=min(min(A))内容(三)采样量化实验二图像变换傅里叶变换、反变换、I=imread('19.jpg');A=rgb2gray(I);x1=fft2(A);x2=fftshift(x1);x3=ifft(x1)/10;figure,subplot(1,4,1);imshow(A)title('原图');subplot(1,4,2);imshow(x1)title('频谱图');subplot(1,4,3);imshow(log(abs(x2)+1),[0 10]);title('直流分量移至频谱图中心');subplot(1,4,4);imshow(x3,[0 10])title('傅里叶反变换');DCT变换、反变换I=rgb2gray(X);subplot(1,3,1);imshow(I);title('原图');subplot(1,3,2);J=dct2(I);imshow(log(abs(J)),[0 20]);title('二维离散余弦变换');subplot(1,3,3);K=idct2(J)/20;imshow(K,[0 20]);title('二维离散反余弦变换');利用DCT变换压缩图像I=imread('19.jpg');A=rgb2gray(I);B=DCT2(A);B(abs(B)<0.1)=0;C=idct2(B)/255;figure,subplot(1,3,1);imshow(A);title('原图');subplot(1,3,2);imshow(B);title('二维离散余弦变换频谱图');subplot(1,3,3);imshow(C);title('压缩后图像');实验三图像增强(一)灰度图像增强(1)线性变换法clc;clear all;I=imread('19.jpg');A=rgb2gray(I);colormap;imshow(A);%设置图像倒数参数j=imadjust(A,[0 1],[1 0],1.5);figure;subimage(j)(2)灰度图像的非线性变换(之对数)I=imread('19.jpg');colormapimshow(I)J=double(I);J=45*log(J+1);I=uint8(J);figure,subimage(J)(二)直方图校正直方图均衡I=imread('19.jpg');B=rgb2gray(I);imshow(B,[40 255]);figure,imhist(B)title('直方图')J=imadjust(B,[0.15 0.9],[0 1]); figure,imhist(B,64)title('均衡直方图')滤波I=imread('19.jpg');figure,B=rgb2gray(I);C=imnoise(B,'salt & pepper',0.02);D=imfilter(B,fspecial('average',3)); E=medfilt2(B);subplot(1,3,2)imshow(D)title('均值滤波')subplot(1,3,3)imshow(D)title('中值滤波')subplot(1,3,1)imshow(C)title('加入椒盐噪声图像')锐化处理I=imread('19.jpg');A=rgb2gray(I);figure,subplot(2,3,1),imshow(A);title('原图');hs=fspecial('sobel');S=imfilter(A,hs);hp=fspecial('prewitt');P=imfilter(A,hs);A=double(A);%双精度型H=[0 1 0,1 -4 1,0 1 0];%拉普拉斯算子J=conv2(A,H,'same');K=A-J;subplot(2,3,2),imshow(K);title('拉普拉斯锐化图像');B=edge(A,'roberts',0.1);subplot(2,3,3),imshow(B);title('罗伯特锐化图像');subplot(2,3,4),imshow(S);title('sobel算子锐化图像');subplot(2,3,5),imshow(P);title('prewitt算子锐化图像');实验四放缩A=imread('19.jpg');imshow(A);title('原图')B=imresize(A,2)figure,imshow(B);title('二倍图')C=imresize(A,0.5)figureimshow(C)title('二分之一图')旋转A=imread('19.jpg');figuresubplot(1,4,1),imshow(A);title('原图像')B=imrotate(A,30,'nearest');subplot(1,4,2),imshow(uint8(B));title('旋转30度图像')C=imrotate(A,45,'nearest');subplot(1,4,3),imshow(uint8(C));title('旋转45度图像')D=imrotate(A,60,'nearest');subplot(1,4,4),imshow(uint8(D));title('旋转60度图像')镜像A1=imread('19.jpg');A1=double(A1);Figure,subplot(1,4,1),imshow(uint8(A1));H=size(A1);title('原像')A2(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,1:H(2),1:H(3));%垂直镜像subplot(1,4,2),imshow(uint8(A2));title('垂直镜像')A3(1:H(1),1:H(2),1:H(3))=A1(1:H(1),H(2):-1:1,1:H(3));%水平镜像subplot(1,4,3),imshow(uint8(A3));title('水平镜像')A4(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,H(2):-1:1,1:H(3));%对角镜像subplot(1,4,4),imshow(uint8(A4));title('对角镜像')剪切A1=imread('19.jpg');A2=imcrop(A1,[75 68 100 110]);figuresubplot(1,2,1),imshow(A1);title('原像')subplot(1,2,2),imshow(A2);title('剪切后像')实验五阈值分割A=imread('19.jpg');figuresubplot(1,4,1),imshow(A);title('原图像')B=im2bw(A,91/255);subplot(1,4,2),imshow(B);title('阈值91的图像')C=im2bw(A,71/255);subplot(1,4,3),imshow(C);title('阈值71的图像')D=im2bw(A,140/255);subplot(1,4,4),imshow(D);title('阈值140的图像')边缘检测I=imread('19.jpg');A=rgb2gray(I);figuresubplot(1,4,1),imshow(A);title('原图像')B=edge(A,'sobel',0.1);%edge边缘检测函数subplot(1,4,2),imshow(B);title('sobel算子检测')C=edge(A,'roberts',0.1);%0.1为门限subplot(1,4,3),imshow(C);title('roberts算子检测')D=edge(A,'prewitt',0.1);subplot(1,4,4),imshow(D);title('prewitt算子检测')所谓数字图像处理[7]就是利用计算机对图像信息进行加工以满足人的视觉心理或者应用需求的行为。
(完整版)数字图像处理MATLAB程序【完整版】
第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
matlab作业3参考答案
matlab作业3参考答案Matlab作业3参考答案Matlab作业3是一个综合性的编程任务,要求学生运用Matlab的各种功能和工具来解决实际问题。
本文将提供Matlab作业3的参考答案,并对其中的关键步骤和思路进行详细解释。
一、问题描述在本次作业中,学生需要解决一个关于图像处理的问题。
具体来说,给定一张彩色图像,学生需要编写Matlab代码来实现以下功能:1. 将彩色图像转换为灰度图像;2. 对灰度图像进行高斯滤波;3. 对滤波后的图像进行边缘检测;4. 对边缘图像进行二值化处理。
二、解决方案1. 将彩色图像转换为灰度图像首先,我们需要读取彩色图像。
可以使用Matlab的imread函数来实现。
然后,使用rgb2gray函数将彩色图像转换为灰度图像。
代码如下:```matlabrgbImage = imread('image.jpg');grayImage = rgb2gray(rgbImage);```2. 对灰度图像进行高斯滤波接下来,我们需要对灰度图像进行高斯滤波。
高斯滤波是一种常用的图像平滑方法,可以有效地去除图像中的噪声。
Matlab提供了fspecial函数来生成高斯滤波器。
代码如下:```matlabh = fspecial('gaussian', [3 3], 1);filteredImage = imfilter(grayImage, h);```3. 对滤波后的图像进行边缘检测在这一步中,我们需要对滤波后的图像进行边缘检测。
边缘检测可以帮助我们找到图像中的边缘和轮廓。
Matlab提供了多种边缘检测算法,如Sobel算子和Canny算子。
代码如下:```matlabedgeImage = edge(filteredImage, 'canny');```4. 对边缘图像进行二值化处理最后,我们需要对边缘图像进行二值化处理,将图像中的边缘转换为黑白两种颜色。
数字图像处理作业(matlab)
第
2
页 共 13 页
图 3.3.1 原图效果
图 3.3.2 d0=5 时处理的效果
第
3
页 共 13 页
图 3.2.3
d0=15 的处理效果
图 3.2.4 d0=3.6 d0=150 的处理效果
第
4
页 共 13 页
图 2.3.7 d0=230 的处理效果
D(u, v) D0 轨迹为一个圆。
高斯低通滤波器的传递函数为:
H (u, v) e D
2
( u ,v ) / 2 2
第
1
页 共 13 页
其中 为标准偏差,通过令 Do 我们可以得到:
H (u, v) e D
2
( u ,v ) / 2 D02
当 D(u, v) D0 时,滤波器由最大值 1 降为 0.607. 3.2 程序 I1=imread('C:\Users\akhs\Desktop\美丽西电\1.jpeg'); %读取图像 figure; imshow(I1,[ ]); title('原图效果'); I=rgb2gray(I1); % 将图像变为灰度图象 %将灰度图像的二维不连续 Frourier 变换的零频率成分移到频谱的中心 s=fftshift(fft2(I)); [M,N]=size(s); % 分别返回 s 的行数到 M 中,列数到 N 中 n=2; % 对 n 赋初值 %GLPF 滤波,d0=5,15,30 ,80,150,230(程序中以 d0=5 为例) d0=5; % 初始化 d0 n1=floor(M/2); %对 M/2 进行取整 n2=floor(N/2); %对 N/2 进行取整 for i=1:M for j=1:N d=sqrt((i-n1)^2+(j-n2)^2); % 点(i,j)到傅立叶变换中心的距离 h=1*exp(-1/2*(d^2/d0^2)); %GLPF 滤波函数 s(i,j)=h*s(i,j); %GLPF 滤波后的频域表示 end end s=ifftshift(s); % 对 s 进行反 FFT 移动 %对 s 进行二维反离散的 Fourier 变换后,取复数的实部转化为无符号 8 位整数 s=uint8(real(ifft2(s))); figure; % 创建图形图像对象 imshow(s); % 显示 GLPF 滤波处理后的图像 title('GLPF 滤波(d0=5)'); % 为经 GLPF 滤波后的图像添加标题 3.3.运行结果 通过设置 do=5,15,30,80,150,230.针对不同图片可以得到如下效果:
MATLAB数字图像处理实验-推荐下载
imshow(a); title('灰度图');
figure; b=dct2(a); imshow(log(abs(b)),[]),colormap(jet(64)),colorbar; title('DCT 变换结果');
figure; b(abs(b)<10)=0; % idct c=idct2(b)/255; imshow(c); title('IDCT 变换结果'); 图象处理变换(三)小波变换 实验内容: 熟悉小波变换的概念和原理,熟悉 matlab 小波工具箱主要函数的使 用.利用二维小波分析对一幅图象作 2 层小波分解,并在此基础上提取各层的低 频信息实现图像的压缩. 程序如下:
(2)锐化:锐化的目的是增强被模糊的细节。锐化是用高通滤波器来完成,在 空域中,接近原点处为正,在远离原点处为负。 利用模板进行图象增强就是进行模板卷积。 1、 利用二个低通邻域平均模板(3×3 和 9×9)对一幅图象进行平滑,验证模 板尺寸对图象的模糊效果的影响。 2、 利用一个低通模板对一幅有噪图象(GAUSS 白噪声)进行滤波,检验两种 滤波模板(分别使用一个 5×5 的线性邻域平均模板和一个非线性模板:3×5 中值滤波器)对噪声的滤波效果。 3、 选择一个经过低通滤波器滤波的模糊图象,利用 sobel 和 prewitt 水平边 缘增强高通滤波器(模板)对其进行高通滤波图象边缘增强,验证模板的滤波 效果。 4、 选择一幅灰度图象分别利用 一阶 Sobel 算子和二阶 Laplacian 算子对其进 行边缘检测,验证检测效果。 二、实验步骤: 1、利用低通邻域平均模板进行平滑:
figure subplot(2,2,1) imshow(I) J=find(I<150); I(J)=0; J=find(I>=150); I(J)=255; title(' 实验一(4)图像二值化 ( 域值为 150 ) ');
华东政法大学计算机专业数字图像处理matlab作业
IFG=ifft2(G); imshow(IFG,[]); title(‘逆变换图像’); (2)h=imnoise(‘motion’,10,10); M=imfilter(f,h); M1=fft2(double(M))… 4、任意选择一幅图像,绘制图像的直方图。可以直接通过使用 imhist(I)来显示图像的直方图 I=imread(‘cameraman.tif’); imshow(I);title('原始图像'); b=size(I); %测量图像尺寸参数 a=zeros(1,256); %创建存放灰度出现概率的向量 for m=1:b(1) for n=1:b(2) a(I(m,n)+1)=a(I(m,n)+1)+1; %将灰度为 I(m,n) 的像素存储在 a (I(m,n)+1) 中, 因为 MATLAB 里没有 a(0); end end n=0:255; figure,bar(n,a); %绘制原始图像的直方图 title('原图像直方图');xlabel('灰度值');ylabel('出现概率 '); 6、读入图像将图像转化成二值图像。在一张图表上,显示原始图像、灰度图像,二值图像; [imm,map]=imread('trees.tif'); % imm 为 2 维矩阵、map 为 256*3 矩阵 figure, imshow(imm,map); % 显示原始图像(彩色) gmap = rgb2gray(map); figure, subplot(1,2,1),imshow(imm,gmap); % 显示灰度图像 subplot(1,2,2),imshow(im2bw(imm,map,0.4),[]); % 显示二值图像 注意:若输入图像是 3 维矩阵,则转化为灰度图像时为 gimm = rgb2gray(imm); 7、读入一幅图像(cameraman.tif) ,完成如下操作,并存储变换后的图像 (1)把图像翻转 90 及 180 度,并显示; (参考 imrotate 函数) (2)缩小图像 (3)切割图像(参考 incrop 函数) (4)镜像图像(如样图所示镜像效果) I=imread(‘cameraman.tif’); H=size(I); I2(1:H(1),1:H(2))=I(H(1):-1:1,1:H(2)); % 垂直翻转(垂直镜像) figure, imshow(I2); I3(1:H(1),1:H(2))=I(1:H(1),H(2):-1:1); % 水平翻转(水平镜像) figure,imshow(I3); I4(1:H(1),1:H(2))=I(H(1):-1:1,H(2):-1:1); % 对角镜像 figure,imshow(I4); 5、对同一场景但模糊程度不一样的三张数字图像绘制出其直方图,计算每一幅图像所有像素灰度的方差。 使用 imhist 求其直方图。计算像素灰度的方差: I=imread(); IG=rgb2gray(I); k=size(IG);
数字图像处理及应用(MATLAB)第3章
程序运行结果如图(c)所示。
4.灰度非线性变换 当用某些非线性函数,例如平方、对数、指数函数等作为 映射函数时,可实现图像灰度的非线性变换。灰度的非线性 变换简称非线性变换,是指由这样一个非线性单值函数所确 定的灰度变换。 (1)对数变换 对数变换常用来扩展低值灰度,压缩高值灰度,这样可以使低值灰 度的图像细节更容易看清,从而达到增强的效果。对数非线性变换
[例] 假设一个图像由一个4×4大小的二维数值矩阵构成,如图(a)
所示,试写出图像的灰度分布,并画出图像的直方图。
灰度直方图计算示意图
经过统计图像中灰度值为0的像素有1个,灰度值为1的 像素有1个,…,灰度值为6的像素有1个。由此得到图像的 灰度分布如表所示,由表可得灰度直方图如图(b)所示。 图像的灰度分布
3.1.2 (rk)代表概 率密度函数,并且有下式成立:
nk Pr (rk ) 0 rk 1 n k 0,1,2,l 1
式中nk为图像中出现rk这种灰度的像素数,n是图像中像素 总数,nk/n就是概率论中的频数,l是灰度级的总数目。在直 角坐标系中作出rk与P(rk)的关系图形,就得到直方图
图 不同的图像其直方图却是相同的
图 直方图的叠加性质
由以上可知,尽管直方图不能表示出某灰度级的像素在什么位
置,更不能直接反映出图像内容,但是却能描述该图像的灰度分布
特性,使人们从中得到诸如图像的明亮程度、对比度等,成为一些 处理方法的重要依据。通常一幅均匀量化的自然图像由于其灰度直
方图分布集中在较窄的低值灰度区间,引起图像的细节看不清楚,
(a)反变换关系
(b) 原图 图像反转的效果
(c)变换后的图像
由直线方程截斜式可知当k =-1,b=L-1时,其表达式为:
基于matlab的数字图像处理
其显示结果如图所示。
例题:对图像pout.tif进行线性高通滤波。
I=imread('pout.tif');
h=fspecial('laplacian');
I2=filter2(h,I);
subplot(1,2,1);
imshow(I);title('原始图像');
二.灰度直方图的使用
Matlab中的imhist函数可以进行图像的灰度直方图运算,调用语法如下。
imhist(I);
imhist(I,n);
[counts,s]=imhist(...);
4.一般直方图
下面使用了Matlab中的一张内置示例图片演示灰度直方图的生成与显示,程序如下。
I=imread('pout.tif');
对于索引图像,情况有所不同,此时imread的调用形式如下。
[X,MAP]=imread(FILENAME,FMT);
1.2函数imwrite
Inwrite将指定的图像数据写入文件中,通过指定不同的保存文件扩展名可以起到图像格式转换的作用。其调用格式如下。
Imwrite(A,FILENAME,FMT);
ix(N2/2);
fori=1:N1
forj=2:N2
d=sqrt((i-n1)^2+(j-n2)^2);
ifd==0
h=0;
else
h=1/(1+(d0/d)^(2*n));
end
result1(i,j)=h*g(i,j);
if(g(i,j)<50)
d0=50;
n1=fix(N1/2);
MATLAB数字图像处理实验
数字图像处理实验图像处理实验(一)直方图灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。
灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像增强。
1、灰度直方图(1)计算出一幅灰度图像的直方图clearclose allI=imread('004.bmp');imhist(I)title('实验一(1)直方图');(2)对灰度图像进行简单的灰度线形变换,figuresubplot(2,2,1)imshow(I);title('试验2-灰度线性变换');subplot(2,2,2)histeq(I);(3)看其直方图的对应变化和图像对比度的变化。
原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)figuresubplot(2,2,1)imshow(I)J=imadjust(I,[0.3,0.7],[0,1],1);title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 '); subplot(2,2,2)imshow(J)subplot(2,2,3)imshow(I)J=imadjust(I,[0.5 0.8],[0,1],1);subplot(2,2,4)imshow(J)(4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像)figuresubplot(2,2,1)imshow(I)J=find(I<150);I(J)=0;J=find(I>=150);I(J)=255;title(' 实验一(4)图像二值化 ( 域值为150 ) ');subplot(2,2,2)imshow(I)clc;I=imread('14499.jpg');bw=im2bw(I,0.5);%选取阈值为0.5figure;imshow(bw) %显示二值图象图象处理变换(二)1.傅立叶变换熟悉其概念和原理,实现对一幅灰度图像的快速傅立叶变换,并求其变换后的系数分布.2.离散余弦变换熟悉其概念和原理,实现对一幅灰度和彩色图像作的离散余弦变换,选择适当的DCT系数阈值对其进行DCT反变换.% 图象的FFT变换clc;I=imread('005.bmp');subplot(1,2,1)imshow(I);title('原图');subplot(1,2,2)imhist(I);title('直方图');colorbar;J=fft2(I);figure;subplot(1,2,1)imshow(J);title('FFT变换结果');subplot(1,2,2)K=fftshift(J);imshow(K);title('零点平移');figure;imshow(log(abs(K)),[]),colormap(jet(64)),colorbar;title('系数分布图');% 图象的DCT变换RGB=imread('005.bmp');figure;subplot(1,2,1)imshow(RGB);title('彩色原图');a=rgb2gray(RGB);subplot(1,2,2)imshow(a);title('灰度图');figure;b=dct2(a);imshow(log(abs(b)),[]),colormap(jet(64)),colorbar;title('DCT变换结果');figure;b(abs(b)<10)=0;% idctc=idct2(b)/255;imshow(c);title('IDCT变换结果');图象处理变换(三)小波变换实验内容:熟悉小波变换的概念和原理,熟悉matlab小波工具箱主要函数的使用.利用二维小波分析对一幅图象作2层小波分解,并在此基础上提取各层的低频信息实现图像的压缩.程序如下:clcclose allcleara=imread('005.bmp');subplot(1,2,1);imshow(a);title('原始图象');I=rgb2gray(a);subplot(1,2,2);imshow(I);title('原始图象的灰度图');% 进行二维小波变换[a,b] = wavedec2(I, 2, 'bior3.7');% 提取各层低频信息figure;c = appcoef2( a, b, 'bior3.7', 1 );subplot(1,2,1);imshow(c, []);title('一层小波变换结果');d = appcoef2( a, b, 'bior3.7', 2 );subplot(1,2,2);imshow(d, []);title('二层小波变换结果');图象处理实验(四)模板运算一、实验内容:(1)平滑:平滑的目的是模糊和消除噪声。
数字图像处理MATLAB上机作业
数字图像处理实验报告指导老师:学号姓名班级1.产生右图所示图像f1(m,n),其中图像大小为256X 256,中间亮条为128X 32,暗处=0,亮处=100 对其进行FFT:①同屏显示原图f1(m,n)和FFT(f1)的幅度谱图;②若令f2(m,n)=(-1)(m+n)f1(m,n),重复以上过程,比较二者幅度谱的异同,简述理由;③若将f2(m,n)顺时针旋转90度得到f3(m,n),试显示FFT(f3)的幅度谱,并与FFT(f2)的幅度谱进行比较;④若将f1(m,n)顺时针旋转90 度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),试显示FFT(f5)的幅度谱,并指出其与FFT(f1)和FFT(f4)的关系;⑤若令f6(m,n)=f2(m,n)+f3(m,n),试显示FFT(f6)的幅度谱,并指出其与FFT(f2)和FFT(f3)的关系, 比较FFT(f6)和FFT(f5)的幅度谱。
f1=zeros(256,256);for i=64:1:192for j=122:1:144f1(i,j)=100;endendfft_f1=fft2(f1);fft_f1=abs(fft_f1);tmax=fft_f1(1,1);tmi n=fft_f1(1,1);for i=1:256for j=1:256if tmax<fft_f1(i,j)tmax=fft_f1(i,j);endif tmi n> fft_f1(i,j)tmi n=fft_f1(i,j);endendenddelta=tmax-tm in;for i=1:256for j=1:256fft_f1(i,j)=255*(fft_f1(i,j)-tmi n)/delta;endendsubplot(1,2,1);imshow(f1);title( '原图’);subplot(1,2,2);imshow(fft_f1);title('原图的幅度谱’);原因原團的幅度谱for i=1:256for j=1:256 f2(i,j)=(-1)F+j)*f1(i,j);endend fft_f2=fft2(f2); fft_f2=abs(fft_f2);tmax=fft_f2(1,1);tmi n=fft_f2(1,1);for i=1:256for j=1:256if tmax<fft_f2(i,j)tmax=fft_f2(i,j);endif tmi n>fft_f2(i,j)tmi n=fft_f2(i,j);endendenddelta=tmax-tm in;for i=1:256for j=1:256fft_f2(i,j)=255*(fft_f2(i,j)-tmi n)/delta;endend subplot(2,2,1); imshow(f1); title( '原图’);subplot(2,2,2);imshow(fft_f1);title('原图的幅度谱’); subplot(2,2,3);imshow(f2);title( '原图中心化’);subplot(2,2,4);imshow(fft_f2);title('原图中心化的幅度谱’);原團的幅度谱iBv *f3=imrotate(f2,-90, 'bili near' );fft_f3=fft2(f3);fft_f3=abs(fft_f3);tmax=fft_f3(1,1);tmi n=fft_f3(1,1);for i=1:256for j=1:256if tmax<fft_f3(i,j) tmax=fft_f3(i,j);endif tmi n>fft_f3(i,j)tmi n=fft_f3(i,j);endend 原團中心化 原图中心化的幅度谱 原團end delta=tmax-tm in;for i=1:256for j=1:256fft_f3(i,j)=255*(fft_f3(i,j)-tmi n)/delta;endendsubplot(2,2,1);imshow(f2);title( '原图中心化’);subplot(2,2,2);imshow(fft_f2);title('原图中心化的幅度谱’);subplot(2,2,3);imshow(f3);title('旋转后的图像’); subplot(2,2,4);imshow(fft_f3);title('旋转后的幅度谱’);厲團中心化原图中心化的幅度谱I旋转后的幅度谱WWW图像旋转90度后,幅度谱也旋转了90度。
数字图像处理及MATLAB实现第三章 MATLAB图像处理工具箱
13
(3)从原始图像中减去背景图像 将背景图像 background从原始图像 I中减去, 从而创建一个新的、背景较为一致的图像, 其程序如下: I2 =imsubtract(I,background); figure,imshow(I2); 运行结果如图 3.5(a)所示。
14
15
(4) 调节图像对比度 从图 3.5(a)可以看出,修改后的图像很暗, 可以使用 imadjust函数来调节图像的对比度,并 显示调节后的效果。 I3 =imadjust(I2,stretchlim(I2), [0,1]); figure,imshow(I3);
17
(6) 检查图像中的对象个数 为了确定图像中的米粒的个数,使用 bwlabel函数,该函数标示了二值图像 bw 中的所 有相关成分,并且返回在图像中找到的对象个数 numobjects: [labeled,numobjects]=bwlabel(bw,4); % labelcomponents numobjects=80
37
38
(2) 灰度图像转换为索引图像 gray2ind函数可以将灰度图像转换成索引图 像,其语法格式为: [X,map]=gray2ind(I,n) 其功能是:按指定的灰度级数 n和颜色图 map, 将灰度图像 I转换成索引色图像 X,n的默 认值为 64。 下面将灰度图像 pout.tif转换成索引图像 X, 颜色图分别为 gray(128)和 gray(16)。程序 清单如下:
16
(5) 使用阀值操作将图像转换为二进制图像 通过使用函数 graythresh和 im2bw 创建一 个新的二值图像 bw,其程序如下: level=graythresh(I3); bw =im2bw(I3,level); figure,imshow(bw); 运行结果如图 3.5(c)所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1I=imread('bmp.bmp'); %把一个BMP灰度图像读入到变量I中I1=im2double(I); %图像灰度值的双精度化figure,imhist(I1); %打开一个新图形窗口来显示直方图I2=imadjust(I1,[0 0.3],[0 1]); %把图像的灰度范围从[0,0.3]拉伸到[0,1] figure,imshow(I2); %打开一个新图形窗口显示增强后的图像figure,imhist(I2); %打开一个新图形窗口显示增强后的直方图3.2I=imread('lf.bmp'); imshow(I);%读入并显示一幅BMP频谱图像I1=double(I);%双精度化I2=log(I1+1);%对数变换I3=mat2gray(I2);%把图像的灰度范围变换为[0 1]范围figure,imshow(I3); %打开一个新的图形窗口显示减少动态范围后的频谱图像3.4I=imread('fj.bmp'); I=rgb2gray(I);imshow(I);title('原始图像');%读入并显示一幅灰度图像figure,imhist(I);title('原始直方图');%打开一个新的图形窗口显示原始图像的直方图[I1,T]=histeq(I);%直方图均衡化figure,imshow(I1);title('均衡化后'); %打开一个新的图形窗口显示均衡化后的图像figure,imhist(I1);title('均衡化后直方图');%打开一个新的图形窗口显示均衡化后的直方图figure,plot((0:255)/255,T);title('变换曲线');%打开一个新的图形窗口画出变换曲线3.6I=imread('fj.bmp'); I=rgb2gray(I);imshow(I);title('原始图像');%读入并显示一幅灰度图像figure,imhist(I);title('原始直方图');%打开一个新的图形窗口显示原始图像的直方图[I1,T]=histeq(I);%直方图均衡化figure,imshow(I1);title('均衡化后'); %打开一个新的图形窗口显示均衡化后的图像figure,imhist(I1);title('均衡化后直方图');%打开一个新的图形窗口显示均衡化后的直方图figure,plot((0:255)/255,T);title('变换曲线');%打开一个新的图形窗口画出变换曲线3.7clc;clear all;I=imread('hua.bmp');imshow(I),title('hua.bmp'); %把一个图形窗口划分为1×2矩形显示区域,在图形窗口的左侧区域显示图像II1=double(I);%数据类型转换,不支持无符号整型计算[M,N]=size(I1);%计算图像的高和宽%产生高斯型高通滤波器m=round(M/2);n=round(N/2);%四舍五入取整hh=1.035;hl=0.7;c=3;for i=1:Mfor j=1:Nd(i,j)=sqrt((i-m)^2+(j-n)^2);endendd0=median(median(d));for i=1:Mfor j=1:Nh(i,j)=(hh-hl)*(1-exp(-c*(d(i,j)/d0)))+hl;%高通滤波器endend[i,j]=meshgrid(1:M,1:N);figure,mesh(h); title('highpass filter');%同态滤波h=h';I2=log(I1+1);%对数变换I3=fft2(I2);%傅立叶变换I3=fftshift(I3);%频谱中心化I3=reshape(I3,384,1152);I4=I3.*(h);%滤波I4=reshape(I4,384,384,3);I4=ifftshift(I4); %频谱反中心化I4=ifft2(I4);%傅立叶反变换I5=exp(I4-1);%指数变换I6=real(I5);%取幅值I7=mat2gray(I6);%恢复变换后的数值范围figure,imshow(I7);title('adjusted image intensity value');%在图形窗口的右侧区域显示结果图像3.8I=imread('lf.bmp');I=rgb2gray(I);imshow(I);%读入和显示一幅原始图像title('original image') %给图像加标题X=grayslice(I,16);%将灰度范围分成16层% X=grayslice (I,n)用阈值1/n, 2/n, ..., (n-1)/n 阈值化灰度图像I ,并返回索引图像X。
figure,imshow(X,hot(16));%黑红黄白浓淡色的伪彩色title('gray slice image'); %给图像加标题3.9I = imread('lf.bmp');I=rgb2gray(I);figure;subplot(1,2,1);imshow(I);title('原始图像'); [M,N] = size(I);J = double(I);L = 256;for i = 1:Mfor j = 1:Nif J(i,j) < L/4R(i,j) = 0;G(i,j) = 4*J(i,j);B(i,j) = L;elseif J(i,j) <=L/2R(i,j) = 0;G(i,j) = L;B(i,j) = -4*(J(i,j)-L/2);elseif J(i,j) <=3*L/4R(i,j) = 4*(J(i,j)-L/2);G(i,j) = L;B(i,j) = 0;elseR(i,j) = L;G(i,j) = -4*(J(i,j)-L);B(i,j) = 0;endendendOUT = repmat(I,[1 1 3]);for i = 1:Mfor j = 1:NOUT(i,j,1) = R(i,j);OUT(i,j,2) = G(i,j);OUT(i,j,3) = B(i,j);endendsubplot(1,2,2);imshow(OUT);title('灰度变换法伪彩色增强后图像')3.10I=imread('lf.bmp');%读入一幅原始图像I=rgb2gray(I);I1=imadjust(I,stretchlim(I),[]); %对原始图像进行灰度变换的增强figure,imshow(I1);% 打开一个新的图形窗口并显示增强后的图像B=im2bw(I1,graythresh(I1)); %对增强后的图像进行阈值处理figure,imshow(B); %打开一个新的图形窗口并显示阈值处理后的图像3.11[X,Y,Z]=peaks(80);n=8;%获得peaks图形数据,给定等高线分级数n subplot(1,2,1),pcolor(X,Y,Z)%伪彩色图colormap('jet'),shading interp%色图矩阵采用蓝头红尾饱和色,浓淡插值hold on,C=contour(X,Y,Z,n, 'k');%图上用黑虚线画等位线clabel(C) %以+引导水平放置标识Ccolorbar; %显示垂直色标尺hold off,subplot(1,2,2) %画图结束在右侧显示下图[C,h]=contourf('v6',X,Y,Z,n, 'k'); %黑虚线画填色等位线clabel(C,h) %沿线布置标识C3.12I=imread('hua.bmp');I=rgb2gray(I);I1 =imadjust(I,stretchlim(I),[]); %把图像灰度从原始范围拉伸到全部范围imshow(I1); %显示灰度增强后的图像colorbar('vert'); %显示颜色条colormap('jet');3.13subplot(1,3,1); sphere(30);%打开一个图形窗口并将其在水平方向分成三个子窗口,在左侧子窗口显示一球体( SPHERE(N) Generate sphere by three (N+1)-by-(N+1) matrices )axis square; %横轴和纵轴的比例是1:1shading flat %采用分层明暗处理grid;title('Flat Shading'); %除去网格,显示标题subplot(1,3,2);sphere(30);%在中间的子窗口显示一个球体axis square; %横轴和纵轴的比例是1:1shading faceted %采用小方块明暗处理grid;title('Faceted Shading');% 除去网格,显示标题subplot(1,3,3);sphere(30); %在最右边的子窗口显示一个球体axis square; %横轴和纵轴的比例是1:1shading interp %采用插补明暗处理grid;title('Interpolated Shading'); %除去网格,显示标题3.14rgb=imread('hua.bmp'); %读入一幅真彩色图像subplot(1,2,1);imshow(rgb);% 显示该真彩色图像f_rgb(:,:,1)=rgb(:,:,3);%把蓝色分量变为红色分量f_rgb(:,:,2)=rgb(:,:,1);%把红色分量变为绿色分量f_rgb(:,:,3)=rgb(:,:,2);%把绿色分量变为蓝色分量subplot(1,2,2);imshow(f_rgb);%显示假彩色处理后图像。