数字图像处理基础程序及运行结果图像matlab程序
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/4dabe4d0bcd126fff6050b13.png)
数字图像处理实验报告实验一数字图像处理编程基础一、实验目的1. 了解MATLAB图像处理工具箱;2. 掌握MATLAB的基本应用方法;3. 掌握MATLAB图像存储/图像数据类型/图像类型;4. 掌握图像文件的读/写/信息查询;5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法;6. 编程实现图像类型间的转换。
二、实验内容1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。
2. 运行图像处理程序,并保存处理结果图像。
三、源代码I=imread('cameraman.tif')imshow(I);subplot(221),title('图像1');imwrite('cameraman.tif')M=imread('pout.tif')imview(M)subplot(222),imshow(M);title('图像2');imread('pout.bmp')N=imread('eight.tif')imview(N)subplot(223),imshow(N);title('图像3');V=imread('circuit.tif')imview(V)subplot(224),imshow(V);title('图像4');N=imread('C:\Users\Administrator\Desktop\1.jpg')imshow(N);I=rgb2gary(GRB)[X.map]=gary2ind(N,2)RGB=ind2 rgb(X,map)[X.map]=gary2ind(I,2)I=ind2 gary(X,map)I=imread('C:\Users\dell\Desktop\111.jpg');subplot(231),imshow(I);title('原图');M=rgb2gray(I);subplot(232),imshow(M);[X,map]=gray2ind(M,100);subplot(233),imshow(X);RGB=ind2rgb(X,map);subplot(234),imshow(X);[X,map]=rbg2ind(I);subplot(235),imshow(X);四、实验效果实验二 图像几何变换实验一、实验目的1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果;2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现;3.掌握matlab 编程环境中基本的图像处理函数。
MATLAB图像处理基础教程
![MATLAB图像处理基础教程](https://img.taocdn.com/s3/m/44382a74905f804d2b160b4e767f5acfa0c78306.png)
MATLAB图像处理基础教程第一章:MATLAB图像处理简介MATLAB(Matrix Laboratory)是一种强大的数值计算和数据可视化软件,广泛应用于各个领域,包括图像处理。
图像处理是一门研究如何对数字图像进行分析、增强、重建和压缩的学科。
本教程将引导读者逐步了解MATLAB图像处理的基本概念和技术。
第二章:MATLAB图像的读取与显示在MATLAB中,可以使用imread函数读取不同格式的图像文件,并使用imshow函数显示图像。
此外,还可以使用imfinfo函数获取图像的详细信息,如分辨率、颜色空间和位深度等。
第三章:图像的灰度处理灰度处理是一种常见的图像预处理方法。
通过将彩色图像转换为灰度图像,可以减少图像的数据量,简化图像处理的复杂性。
在MATLAB中,可以使用rgb2gray函数将彩色图像转换为灰度图像,并使用imhist函数查看灰度图像的直方图。
第四章:图像的滤波处理滤波是一种常用的图像处理操作,用于对图像进行平滑、增强或去噪。
MATLAB提供了各种滤波函数,如均值滤波、中值滤波和高斯滤波等。
可以根据具体需求选择合适的滤波方法,并使用imfilter函数进行滤波处理。
第五章:图像的二值化处理图像的二值化是将图像转换为黑白两色的过程,常用于物体检测、识别和分割等应用。
在MATLAB中,可以使用im2bw函数将灰度图像转换为二值图像,并可以调整阈值来控制二值化的效果。
第六章:图像的几何变换几何变换是一种常见的图像处理操作,用于对图像进行旋转、缩放、平移和翻转等操作。
MATLAB提供了imrotate、imresize、imtranslate和flip函数等实现各种几何变换。
通过组合这些函数,可以实现复杂的图像变换。
第七章:图像的特征提取图像的特征提取是图像处理中的重要步骤,用于从图像中提取出具有代表性的信息。
在MATLAB中,可以使用各种特征提取函数,如imgradient、imhistogram和imcontour等。
实验1-Matlab基本与图像处理基本操作
![实验1-Matlab基本与图像处理基本操作](https://img.taocdn.com/s3/m/44492a61905f804d2b160b4e767f5acfa1c78384.png)
图像处理工具箱简介
01
MATLAB图像处理工具箱是MATLAB软件中一个专门用于图像处理的工具箱, 它提供了一套完整的图像处理和分析工具,包括图像读取、显示、变换、滤波 、增强、分割、特征提取等功能。
02
该工具箱支持多种图像格式,如BMP、JPG、PNG、TIFF等,并提供了丰富的 图像处理函数和算法,方便用户进行图像处理和分析。
对未来学习的展望
• 深入学习图像处理算法:在未来的学习中,我们将进一步深入学习图像处理的 各种算法和原理,包括图像分割、特征提取、目标检测等,以便更好地应用在 实际问题中。
• 掌握更多图像处理软件:除了Matlab软件外,我们还将学习掌握其他常用的 图像处理软件,如OpenCV、Python图像处理库等,以便更灵活地处理各种 图像问题。
02
学习图像处理基本 操作
了解图像处理基本概念,学习图 像读取、显示、保存等基本操作。
03
掌握图像处理常用 函数
熟悉MATLAB中图像处理工具箱 的常用函数,如图像调整、滤波、 边缘检测等。
实验环境准备
MATLAB软件
确保计算机已安装MATLAB软件,并熟悉软件基 本操作。
图像处理工具箱
安装并配置MATLAB图像处理工具箱,以便进行 图像处理实验。
• 加强实验数据分析处理能力:在未来的实验中,我们将更加注重实验数据的分 析和处理,学习掌握更多的数据处理方法和技巧,以便更准确地评估实验结果 和性能。
• 拓展应用领域:图像处理技术在实际应用中具有广泛的应用领域,如医学影像 处理、智能交通、安全监控等。在未来的学习中,我们将积极探索这些应用领 域,并尝试将所学的图像处理技术应用到实际问题中。
使用图像处理工具箱中的特 征提取函数和分类器函数, 对图像进行特征提取和分类 识别。例如,可以使用灰度 共生矩阵提取图像纹理特征, 然后使用支持向量机(SVM) 进行分类识别。
数字图像处理课程设计基于Matlab的数字图像处理
![数字图像处理课程设计基于Matlab的数字图像处理](https://img.taocdn.com/s3/m/02810a3ed15abe23482f4ded.png)
数字图像处理课程设计--基于Matlab的数字图像处理数字图像处理课程设计基于Matlab的数字图像处理——图像的运算院系信息技术学院专业班级电气6班学号 201107111282姓名何英娜指导教师章瑞平课程设计时间 2012年11月目录一、摘要 (3)二、图像代数运算1、1图像的加法运算 (4)1、2图像的减法运算 (4)1、3图像的除法运算 (4)1、4绝对差值运算 (7)1、 5 图像的求补运算 (7)3三、图像的几何运算2、1 图像插值 (7)2、2图像的旋转 (8)2、3图像的缩放 (9)2、4图像的投影变换 (10)2、4图像的剪切 (11)四、课程设计总结与体会 (13)五、参考文献 (14)摘要图像运算涵盖程序设计、图像点运算、代数运算、几何运算等多种运算;设计目的和任务:1、熟悉图像点运算、代数运算、几何运算的基本定义和常见方法;2、掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法3、掌握在MATLAB中进行插值的方法4、运用MATLAB语言进行图像的插值缩放和插值旋转5、学会运用图像的投影变换和图像的剪切46、进一步熟悉了解MATLAB语言的应用,将数字图像处理更好的应用于实际7、通过各类算法加强图像各种属性、一、图像的几何运算何运算图像代数运算是指对两幅或两幅以上输入图像对应的像素逐个进行和差积商运算以产生增强效果的图像。
图像运算是一种比较简单有效的增强处理手段是图像处理中常用方法。
四种图像处理代数运算的数学表达式如下:C(x,y)=A(x,y)+B(x,y)C(x,y)=A(x,y)-B(x,y)C(x,y)=A(x,y)*B(x,y)C(x,y)=A(x,y)/B(x,y)1图像加法运算一般用于多幅图像求平均效果,以便有效降低具有叠加性的随机噪声,在matlab中imadd用于图像相加,其调用格式为z=imadd(X,Y);程序演示如下:I=imread('rice.png');subplot(2,2,1),imshow(I),title('原图像1'); J=imread('cameraman.tif');subplot(2,2,2),imshow(J),title('原图像52');K=imadd(I,J,'uint16'););subplot(2,2,3),imshow(K,[]),title('相加后图像'2、图像减法运算也称差分运算,是用于检测图像变化及运动物体的方法;用imsubtract函数实现。
数字图像处理实验报告
![数字图像处理实验报告](https://img.taocdn.com/s3/m/a0b30da508a1284ac85043c2.png)
目录实验一:数字图像的基本处理操作 (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('原图像');结果如图所示:图原图及其灰度图像,二值图像2.对实验任务2的实现代码如下:a=imread('d:\');A=imresize(a,[800 800]);b=imread('d:\');B=imresize(b,[800 800]);Z1=imadd(A,B);Z2=imsubtract(A,B);Z3=immultiply(A,B);Z4=imdivide(A,B);subplot(3,2,1);imshow(A);title('原图像 A'); subplot(3,2,2);imshow(B);title('原图像 B'); subplot(3,2,3);imshow(Z1);title('加法图像'); subplot(3,2,4);imshow(Z2);title('减法图像'); subplot(3,2,5);imshow(Z3);title('乘法图像'); subplot(3,2,6);imshow(Z2);title('除法图像');结果如图所示:3.对实验任务3的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j); %直流分量移到频谱中心I=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);I=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);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶变换频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶变换频谱');结果如图所示:4.对实验任务4的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j);I=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=imrotate(s,-90);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=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);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱');结果如图所示::结果分析对MATLAB软件的操作开始时不太熟悉,许多语法和函数都不会使用,写出程序后,调试运行,最开始无法显示图像,检查原因,是有些标点符号没有在英文状态下输入和一些其他的细节,学会了imread(),imshow(),rgb2gray()等函数。
数字图像处理matlab课程设计
![数字图像处理matlab课程设计](https://img.taocdn.com/s3/m/72678b2cff4733687e21af45b307e87101f6f88d.png)
数字图像处理matlab课程设计一、课程目标知识目标:1. 理解数字图像处理的基本概念,掌握图像的表示和存储方式;2. 学会使用MATLAB软件进行数字图像处理,掌握相关函数和工具箱的使用方法;3. 掌握图像增强、滤波、边缘检测等基本图像处理技术;4. 了解图像分割、特征提取等高级图像处理技术。
技能目标:1. 能够运用MATLAB进行图像读取、显示和保存操作;2. 能够独立完成图像的增强、滤波等基本处理操作;3. 能够运用边缘检测算法对图像进行处理,提取关键特征;4. 能够根据实际需求选择合适的图像处理技术,解决实际问题。
情感态度价值观目标:1. 培养学生对数字图像处理技术的兴趣,激发其学习热情;2. 培养学生的团队合作意识,使其学会在团队中分享和交流;3. 培养学生严谨的科学态度,使其注重实验数据的真实性;4. 培养学生的创新思维,鼓励其探索新方法,提高解决问题的能力。
本课程旨在通过数字图像处理MATLAB课程设计,使学生在掌握基本理论知识的基础上,运用MATLAB软件进行图像处理实践。
课程注重理论与实践相结合,培养学生具备实际操作能力,并能运用所学知识解决实际问题。
针对学生的年级特点,课程目标既注重知识技能的传授,又关注情感态度价值观的培养,为学生今后的学习和工作奠定基础。
二、教学内容1. 数字图像处理基础- 图像表示与存储(RGB、灰度、二值图像)- 图像类型转换- MATLAB图像处理工具箱介绍2. 图像增强- 直方图均衡化- 伽玛校正- 图像锐化3. 图像滤波- 均值滤波- 中值滤波- 高斯滤波- 双边滤波4. 边缘检测- 索贝尔算子- 拉普拉斯算子- Canny边缘检测5. 图像分割- 阈值分割- 区域生长- 分水岭算法6. 特征提取与描述- 霍夫变换- SIFT算法- ORB算法教学内容根据课程目标进行选择和组织,注重科学性和系统性。
教学大纲明确分为六个部分,分别对应数字图像处理的基础知识、图像增强、滤波、边缘检测、图像分割和特征提取与描述。
(完整版)数字图像处理MATLAB程序【完整版】
![(完整版)数字图像处理MATLAB程序【完整版】](https://img.taocdn.com/s3/m/d2ae5b9e7cd184254a35354c.png)
第一部分数字图像处理实验一图像的点运算实验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
![数字图像处理课程设计报告matlab](https://img.taocdn.com/s3/m/a53d216f2f60ddccda38a0bd.png)
数字图像处理课程设计报告姓名:学号:班级: .net设计题目:图像处理教师:赵哲老师提交日期: 12月29日一、设计内容:主题:《图像处理》详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等),二、涉及知识内容:1、二值化2、各种滤波3、算法等三、设计流程图四、实例分析及截图效果:运行效果截图:第一步:读取原图,并显示close all;clear;clc;% 清楚工作窗口clc 清空变量clear 关闭打开的窗口close allI=imread('1.jpg');% 插入图片1.jpg 赋给Iimshow(I);% 输出图II1=rgb2gray(I);%图片变灰度图figure%新建窗口subplot(321);% 3行2列第一幅图imhist(I1);%输出图片title('原图直方图');%图片名称一,图像处理模糊H=fspecial('motion',40);%% 滤波算子模糊程度40 motion运动q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制q1=rgb2gray(q);imhist(q1);title('模糊图直方图');二,图像处理锐化H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的qq=imfilter(I,H,'replicate');qq1=rgb2gray(qq);imhist(qq1);title('锐化图直方图');三,图像处理浮雕(来源网络)%浮雕图l=imread('1.jpg');f0=rgb2gray(l);%变灰度图f1=imnoise(f0,'speckle',0.01);%高斯噪声加入密度为0.01的高斯乘性噪声 imnoise噪声污染图像函数 speckle斑点f1=im2double(f1);%把图像数据类型转换为双精度浮点类型h3=1/9.*[1 1 1;1 1 1;1 1 1];%采用h3对图像f2进行卷积滤波f4=conv2(f1,h3,'same');%进行sobel滤波h2=fspecial('sobel');g3=filter2(h2,f1,'same');%卷积和多项式相乘 same相同的k=mat2gray(g3);% 实现图像矩阵的归一化操作四,图像处理素描(来源网络)f=imread('1.jpg');[VG,A,PPG] = colorgrad(f);ppg = im2uint8(PPG);ppgf = 255 - ppg;[M,N] = size(ppgf);T=200;ppgf1 = zeros(M,N);for ii = 1:Mfor jj = 1:Nif ppgf(ii,jj)<Tppgf1(ii,jj)=0;elseppgf1(ii,jj)=235/(255-T)*(ppgf(ii,jj)-T);endendendppgf1 = uint8(ppgf1);H=fspecial('unsharp');Motionblur=imfilter(ppgf1,H,'replicate');figure;imshow(ppgf1);调用function [VG, A, PPG] = colorgrad(f, T)if (ndims(f)~=3) || (size(f,3)~=3)error('Input image must be RGB');endsh = fspecial('sobel');sv = sh';Rx = imfilter(double(f(:,:,1)), sh, 'replicate');Ry = imfilter(double(f(:,:,1)), sv, 'replicate');Gx = imfilter(double(f(:,:,2)), sh, 'replicate');Gy = imfilter(double(f(:,:,2)), sv, 'replicate');Bx = imfilter(double(f(:,:,3)), sh, 'replicate');By = imfilter(double(f(:,:,3)), sv, 'replicate');gxx = Rx.^2 + Gx.^2 + Bx.^2;gyy = Ry.^2 + Gy.^2 + By.^2;gxy = Rx.*Ry + Gx.*Gy + Bx.*By;A = 0.5*(atan(2*gxy./(gxx-gyy+eps)));G1 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A));A = A + pi/2;G2 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A)); G1 = G1.^0.5;G2 = G2.^0.5;VG = mat2gray(max(G1, G2));RG = sqrt(Rx.^2 + Ry.^2);GG = sqrt(Gx.^2 + Gy.^2);BG = sqrt(Bx.^2 + By.^2);PPG = mat2gray(RG + GG + BG);if nargin ==2VG = (VG>T).*VG;PPG = (PPG>T).*PPG;endf1=rgb2gray(f);imhist(f1);title('素描图直方图');五,图像处理实色混合(来源网络)%实色混合I(I<=127)=0; %对像素进行处理,若值小于等于127,置0 I(I>127)=255; %对像素进行处理,若值大于127,置255 imshow(I);title('像素图');I1=rgb2gray(f);imhist(I1);title('像素图直方图');六,图像处理反色图f=imread('1.jpg');q=255-q;imshow(q);title('反色图');imhist(q1);title('反色图直方图');七,图像处理上下对称A=imread('1.jpg');B=A;[a,b,c]=size(A);a1=floor(a/2); b1=floor(b/2); c1=floor(c/2);B(1:a1,1:b,1:c)=A(a:-1:a-a1+1,1:b,1:c);figureimshow(B)title('上下对称');A=rgb2gray(A);figureimhist(A)title('上下对称直方图');八,图像处理类左右对称C=imread('1.jpg');A=C;C(1:a,1:b1,1:c)=A(1:a,b:-1:b+1-b1,1:c);figureimshow(C)title('左右对称');A=rgb2gray(A);figureimhist(A);title('左右对称直方图');九,图像处理单双色显示a=imread('1.jpg');a1=a(:,:,1);a2=a(:,:,2); a3=a(:,:,3);aa=rgb2gray(a);a4=cat(3,a1,aa,aa); a5=cat(3,a1,a2,aa);figuresubplot(121);imshow(a4);title('单色显示');subplot(122);imshow(a5);title('双色显示');a4=rgb2gray(a4);a5=rgb2gray(a5);figuresubplot(121);imhist(a4);title('单色显示直方图');subplot(122);imhist(a5);title('双色显示直方图');十,图像处理亮暗度调整a=imread('1.jpg');a1=0.8*a;figuresubplot(121);imshow(a1);title('暗图');subplot(122);imshow(a2);title('亮图')q3=rgb2gray(a1);q4=rgb2gray(a2);figuresubplot(121);mhist(q3);title('暗图直方图') subplot(122);imhist(q4);title('亮图直方图')十一,图像处理雾化处理q=imread('1.jpg');m=size(q,1);n=size(q,2);r=q(:,:,1);g=q(:,:,2);b=q(:,:,3);for i=2:m-10for j=2:n-10k=rand(1)*10;%产生一个随机数作为半径di=i+round(mod(k,33));%得到随机横坐标dj=j+round(mod(k,33));%得到随机纵坐标r(i,j)=r(di,dj);%将原像素点用随机像素点代替 g(i,j)=g(di,dj);b(i,j)=b(di,dj);endenda(:,:,1)=r;a(:,:,2)=g;a(:,:,3)=b;imshow(a)title('雾化处理图');q=rgb2gray(a);figureimhist(q);title('雾化处理图直方图');十二,图像处理高斯滤波I = imread('1.jpg');G =fspecial('gaussian', [5 5], 2);% fspecial生成一个高斯滤波器Ig =imfilter(I,G,'same');%imfilter使用该滤波器处理图片imshow(Ig);title('高斯滤波');I1=rgb2gray(Ig);imhist(I1);title('高斯滤波直方图');十三,图像处理色彩平衡(来自网络)im=imread('1.jpg');im2=im;%存储元图像im1=rgb2ycbcr(im);%将im RGB图像转换为YCbCr空间。
数字图像处理实验1 MATLAB图像处理编程基础 实验报告
![数字图像处理实验1 MATLAB图像处理编程基础 实验报告](https://img.taocdn.com/s3/m/fb60f53343323968011c929c.png)
实验报告课程名称数字图像处理实验项目MATLAB图像处理编程基础指导教师学院光电信息与通信工程__专业电子信息工程班级/学号学生姓名______ __________实验日期______ _成绩______________________实验1 MATLAB图像处理编程基础一、实验目的1.了解MATLAB产品体系和了解MATLAB图像处理工具箱。
2.掌握MATLAB的基本应用方法。
3.掌握MATLAB图像存储/图像数据类型/图像类型。
4.掌握图像文件的读/写/信息查询。
5.掌握图像显示--显示多幅图像、4种图像类型的显示方法、特殊图像的显示技术6.编程实现图像类型间的转换和图像算术操作。
二、实验的硬件、软件平台硬件:计算机软件:操作系统:Windows XP应用软件:MATLAB 7.0.1三、MATLAB图像处理工具箱的功能图像处理工具箱是一个函数的集合,它扩展了matlab数值计算环境的能力。
这个工具箱支持了大量图像处理操作,包括:空间图像变换 Spatial image transformations形态操作 Morphological operations邻域和块操作 Neighborhood and block operations线性滤波和滤波器设计 Linear filtering and filter design格式变换 Transforms图像分析和增强 Image analysis and enhancement图像登记 Image registration清晰化处理 Deblurring兴趣区处理 Region of interest operations四、说明使用MATLAB进行图像处理所需函数调用步骤在Command Window中,以命令行单句调用某一函数只需写xxx(函数名)xxxxxxx)这样就可以调用了.五、给出MATLAB图像处理工具箱的数据类型和4种基本图像类型工具箱里的函数都是M文件,可以通过type function_name来查看代码,也可以通过写自己的matlab函数来扩展工具箱。
《数字图像处理及MATLAB实现》图像增强与平滑实验
![《数字图像处理及MATLAB实现》图像增强与平滑实验](https://img.taocdn.com/s3/m/abf25f5bf342336c1eb91a37f111f18582d00c53.png)
《数字图像处理及MATLAB实现》图像增强与平滑实验一.实验目的及要求1、熟悉并掌握MA TLAB 图像处理工具箱的使用;2、理解并掌握常用的图像的增强技术。
二、实验设备MATLAB 6.5 以上版本、WIN XP 或WIN2000 计算机三、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
(可将每段程序保存为一个.m文件)1.直方图均衡化clear all; close all % Clear the MATLAB workspace of any variables% and close open figure windows.I = imread('pout.tif'); % Reads the sample images ‘pout.tif’, and stores it inimshow(I) % an array named I.display the imagetext(60,20,'李荣桉1909290239','horiz','center','color','r')figure, imhist(I) % Create a histogram of the image and display it in% a new figure window.[I2,T] = histeq(I); % Histogram equalization.figure, imshow(I2) % Display the new equalized image, I2, in a new figure window.text(60,20,'李荣桉1909290239','horiz','center','color','r')figure, imhist(I2) % Create a histogram of the equalized image I2.figure,plot((0:255)/255,T); % plot the transformation curve.imwrite (I2, 'pout2.png'); % Write the newly adjusted image I2 to a disk file named% ‘pout2.png’.imfinfo('pout2.png') % Check the contents of the newly written file2.直接灰度变换clear all; close allI = imread('cameraman.tif'); 注意:imadjust()功能:调整图像灰度值或颜色映像表,也可实现伽马校正。
数字图像处理及MATLAB实现实验四——图像变换
![数字图像处理及MATLAB实现实验四——图像变换](https://img.taocdn.com/s3/m/74ed3194ed3a87c24028915f804d2b160b4e86a3.png)
数字图像处理及MATLAB实现实验四——图像变换1.图像的傅⾥叶变换⼀(平移性质)傅⾥叶变换的平移性质表明了函数与⼀个指数项相乘等于将变换后的空域中⼼移到新的位置,并且平移不改变频谱的幅值。
I=imread('1.bmp');figure(1)imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI); %求离散傅⾥叶频谱%对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置RRfdp1=real(sfftI);IIfdp1=imag(sfftI);a=sqrt(RRfdp1.^2+IIfdp1.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;figure(2)imshow(real(a));I=imread('2.bmp');figure(1)imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI); %求离散傅⾥叶频谱%对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置RRfdp1=real(sfftI);IIfdp1=imag(sfftI);a=sqrt(RRfdp1.^2+IIfdp1.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;figure(2)imshow(real(a));I=imread('3.bmp');figure(1)imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI); %求离散傅⾥叶频谱%对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置RRfdp1=real(sfftI);IIfdp1=imag(sfftI);a=sqrt(RRfdp1.^2+IIfdp1.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;figure(2)imshow(real(a));实验结果符合傅⾥叶变换平移性质2.图像的傅⾥叶变换⼆(旋转性质)%构造原始图像I=zeros(256,256);I(88:168,124:132)=1; %图像范围是256*256,前⼀值是纵向⽐,后⼀值是横向⽐imshow(I)%求原始图像的傅⾥叶频谱J=fft2(I);F=abs(J);J1=fftshift(F);figureimshow(J1,[550])%对原始图像进⾏旋转J=imrotate(I,90,'bilinear','crop');figureimshow(J)%求旋转后图像的傅⾥叶频谱J=fft2(I);F=abs(J);J2=fftshift(F);figureimshow(J2,[550])3.图像的离散余弦变换⼀%对cameraman.tif⽂件计算⼆维DCT变换RGB=imread('cameraman.tif');figure(1)imshow(RGB)I=rgb2gray(RGB);%真彩⾊图像转换成灰度图像J=dct2(I);%计算⼆维DCT变换figure(2)imshow(log(abs(J)),[])%图像⼤部分能量集中在左上⾓处figure(3);J(abs(J)<10)=0;%把变换矩阵中⼩于10的值置换为0,然后⽤idct2重构图像K=idct2(J)/255;imshow(K)4.图像的离散余弦变换⼆% I=imread('1.bmp');% figure(1)% imshow(real(I));% I=I(:,:,3);% fftI=fft2(I);% sfftI=fftshift(fftI); %求离散傅⾥叶频谱% %对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置% RRfdp1=real(sfftI);% IIfdp1=imag(sfftI);% a=sqrt(RRfdp1.^2+IIfdp1.^2);% a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;% figure(2)% imshow(real(a));% I=imread('2.bmp');% figure(1)% imshow(real(I));% I=I(:,:,3);% fftI=fft2(I);% sfftI=fftshift(fftI); %求离散傅⾥叶频谱% %对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置% RRfdp1=real(sfftI);% IIfdp1=imag(sfftI);% a=sqrt(RRfdp1.^2+IIfdp1.^2);% a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;% figure(2)% imshow(real(a));% I=imread('3.bmp');% figure(1)% imshow(real(I));% I=I(:,:,3);% fftI=fft2(I);% sfftI=fftshift(fftI); %求离散傅⾥叶频谱% %对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置% RRfdp1=real(sfftI);% IIfdp1=imag(sfftI);% a=sqrt(RRfdp1.^2+IIfdp1.^2);% a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;% figure(2)% imshow(real(a));% %构造原始图像% I=zeros(256,256);% I(88:168,124:132)=1; %图像范围是256*256,前⼀值是纵向⽐,后⼀值是横向⽐% imshow(I)% %求原始图像的傅⾥叶频谱% J=fft2(I);% F=abs(J);% J1=fftshift(F);figure% imshow(J1,[550])% %对原始图像进⾏旋转% J=imrotate(I,90,'bilinear','crop');% figure% imshow(J)% %求旋转后图像的傅⾥叶频谱% J=fft2(I);% F=abs(J);% J2=fftshift(F);figure% imshow(J2,[550])% %对cameraman.tif⽂件计算⼆维DCT变换% RGB=imread('cameraman.tif');% figure(1)% imshow(RGB)% I=rgb2gray(RGB);% %真彩⾊图像转换成灰度图像% J=dct2(I);% %计算⼆维DCT变换% figure(2)% imshow(log(abs(J)),[])% %图像⼤部分能量集中在左上⾓处% figure(3);% J(abs(J)<10)=0;% %把变换矩阵中⼩于10的值置换为0,然后⽤idct2重构图像% K=idct2(J)/255;% imshow(K)RGB=imread('cameraman.tif');I=rgb2gray(RGB);I=im2double(I); %转换图像矩阵为双精度型T=dctmtx(8); %产⽣⼆维DCT变换矩阵%矩阵T及其转置T'是DCT函数P1*X*P2的参数B=blkproc(I,[88],'P1*x*P2',T,T');maxk1=[ 1111000011100000110000001000000000000000000000000000000000000000 ]; %⼆值掩模,⽤来压缩DCT系数B2=blkproc(B,[88],'P1.*x',mask1); %只保留DCT变换的10个系数I2=blkproc(B2,[88],'P1*x*P2',T',T); %重构图像figure,imshow(T);figure,imshow(B2);figure,imshow(I2);RGB=imread('cameraman.tif');I=rgb2gray(RGB);I=im2double(I); %转换图像矩阵为双精度型T=dctmtx(8); %产⽣⼆维DCT变换矩阵%矩阵T及其转置T'是DCT函数P1*X*P2的参数B=blkproc(I,[88],'P1*x*P2',T,T');maxk1=[ 1111000011100000100000000000000000000000000000000000000000000000 ]; %⼆值掩模,⽤来压缩DCT系数B2=blkproc(B,[88],'P1.*x',mask1); %只保留DCT变换的10个系数I2=blkproc(B2,[88],'P1*x*P2',T',T); %重构图像figure,imshow(T);figure,imshow(B2);figure,imshow(I2);5.图像的哈达玛变换cr=0.5;I=imread('cameraman.tif');I=im2double(I)/255; %将读⼊的unit8类型的RGB图像I转换为double类型的数据figure(1),imshow(I);%显⽰%求图像⼤⼩[m_I,n_I]=size(I); %提取矩阵I的⾏列数,m_I为I的⾏数,n_I为I的列数sizi=8;snum=64;%分块处理t=hadamard(sizi) %⽣成8*8的哈达码矩阵hdcoe=blkproc(I,[sizi sizi],'P1*x*P2',t,t');%将图⽚分成8*8像素块进⾏哈达码变换%重新排列系数CE=im2col(hdcoe,[sizi,sizi],'distinct');%将矩阵hdcode分为8*8互不重叠的⼦矩阵,再将每个⼦矩阵作为CE的⼀列[Y Ind]=sort(CE); %对CE进⾏升序排序%舍去⽅差较⼩的系数,保留原系数的⼆分之⼀,即32个系数[m,n]=size(CE);%提取矩阵CE的⾏列数,m为CE的⾏数,n为CE的列数snum=snum-snum*cr;for i=1:nCE(Ind(1:snum),i)=0;end%重建图像re_hdcoe=col2im(CE,[sizi,sizi],[m_I,n_I],'distinct');%将矩阵的列重新组织到块中re_I=blkproc(re_hdcoe,[sizi sizi],'P1*x*P2',t',t);%进⾏反哈达码变换,得到压缩后的图像re_I=double(re_I)/64; %转换为double类型的数据figure(2);imshow(re_I);%计算原始图像和压缩后图像的误差error=I.^2-re_I.^2;MSE=sum(error(:))/prod(size(re_I));。
MATLABImageProcessing图像处理入门教程
![MATLABImageProcessing图像处理入门教程](https://img.taocdn.com/s3/m/a85476162a160b4e767f5acfa1c7aa00b52a9d36.png)
MATLABImageProcessing图像处理入门教程MATLAB图像处理入门教程第一章:图像处理基础知识图像处理是指对于数字图像进行各种操作和处理的过程。
在本章中,我们将介绍一些基础的图像处理知识。
1.1 数字图像表示数字图像是由像素组成的二维数组,每个像素表示图像中的一个点。
每个像素的值表示该点的亮度或颜色。
1.2 MATLAB中的图像表示在MATLAB中,图像可以用二维矩阵表示,其中每个元素对应一个像素的亮度或颜色值。
常见的图像格式包括灰度图像和彩色图像。
1.3 图像读取和显示使用MATLAB的imread函数可以读取图像文件,imshow函数可以显示图像。
第二章:图像预处理在进行实际的图像处理之前,通常需要对图像进行预处理,以提取感兴趣的信息或减少噪声。
2.1 图像平滑平滑操作可以减少图像中的噪声。
常见的平滑方法包括均值滤波和高斯滤波。
2.2 边缘检测边缘检测可以找到图像中的边缘区域。
常用的边缘检测算法包括Sobel算子和Canny算子。
2.3 图像分割图像分割可以将图像划分为不同的区域,以便后续的处理。
常见的图像分割算法包括阈值分割和区域生长算法。
第三章:图像增强图像增强可以提高图像的质量和清晰度,使图像更易于理解和分析。
3.1 直方图均衡化直方图均衡化可以增强图像的对比度,使图像的灰度值分布更均匀。
3.2 锐化锐化操作可以增强图像的边缘和细节。
常见的锐化算法包括拉普拉斯算子和Sobel算子。
3.3 噪声去除噪声去除可以降低图像中的噪声,使图像更清晰。
常见的噪声去除方法包括中值滤波和小波去噪。
第四章:图像分析图像分析可以从图像中提取出感兴趣的特征或对象。
4.1 特征提取特征提取可以从图像中提取出具有代表性的特征,可以用于图像分类和识别。
4.2 图像匹配图像匹配可以找到图像中相似的区域或对象。
常见的图像匹配方法包括模板匹配和特征点匹配。
4.3 图像识别图像识别可以根据图像的特征和模式来判断图像中的对象或场景。
数字图像处理(MATLAB版)(第2版)
![数字图像处理(MATLAB版)(第2版)](https://img.taocdn.com/s3/m/0f1cacd8541810a6f524ccbff121dd36a32dc414.png)
目录分析
1.1数字图像处理的 发展
1.2数字图像的相关 概念
1.3数字图像处理的 内容
1.4数字图像处理的 方法
1
1.5图像数字 化技术
2
1.6图像的统 计特征
3
1.7数字图像 的应用
4
1.8 MATLAB 领略
5 1.9 MATLAB
图像处理应用 实例
小结
习题
1
2.1图像类型 的转换
2
2.2线性系统
数字图像处理(MATLAB版)(第2版)
读书笔记模板
01 思维导图
03 目录分析 05 读书笔记
目录
02 内容摘要 04 作者介绍 06 精彩摘录
思维导图
本书关键字分析思维导图
几何变换
技术
图像
基础
图像
特征
数字图像处理
版
数字图像
内容 小结
数字图像
第版
习题
边界
第章
图像增强
滤波
运算
内容摘要
本书主要内容包括:全书共10章,分别介绍了数字图像的相关论述、数字图像的处理基础、图像编码、图像 复原、图像几何变换、图像频域变换、图像几何变换、小波变换、图像增强、图像分割与边缘检测及图像特征描 述等内容。
10.8形态学重建 10.9特征度量
小结 10.10查表操作
习题
作者介绍
这是《数字图像处理(MATLAB版)(第2版)》的读书笔记模板,暂无该书作者的介绍。
读书笔记
这是《数字图像处理(MATLAB版)(第2版)》的读书笔记模板,可以替换为自己的心得。
精彩摘录
这是《数字图像处理(MATLAB版)(第2版)》的读书笔记模板,可以替换为自己的精彩内容摘录。
MATLAB数字图像处理实验--图像基本运算
![MATLAB数字图像处理实验--图像基本运算](https://img.taocdn.com/s3/m/aa8ac1cea32d7375a51780a6.png)
MATLAB数字图像处理实验--图像基本运算一、实验目的1.理解图像点运算、代数运算、几何运算的基本定义和常见方法;2.掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法;3.掌握在MATLAB中进行插值的方法4.运用MATLAB语言进行图像的插值缩放和插值旋转5.进一步熟悉了解MATLAB语言的应用。
二、实验设备与软件1.PC计算机系统2.MATLAB软件,包括图像处理工具箱(Image Processing Toolbox)3.实验图片三、实验内容及结果分析3.1图像的点运算选择pout.tif作为实验图像,实验原理及内容参照《MATLAB图像处理编程及应用》程序代码:I=imread('pout.tif');figure;subplot(1,3,1);imshow(I);title('原图');J=imadjust(I,[0.3;0.6],[0.1;0.9]);subplot(1,3,2);imshow(J);title('线性扩展');I1=double(I);I2=I1/255;C=2;K=C*log(1+I2);subplot(1,3,3);imshow(K);title('非线性扩展');M=255-I;figure;subplot(1,3,1);imshow(M);title('灰度倒置');N1=im2bw(I,0.4);N2=im2bw(I,0.7);subplot(1,3,2);imshow(N1);title('二值化阈值0.4');subplot(1,3,3);imshow(N2);title('二值化阈值0.7');执行结果:原图线性扩展非线性扩展灰度倒置二值化阈值0.4二值化阈值0.7实验1结果图3.2图像的代数运算选择两幅图像,一幅是原图像,一幅为背景图像,采用正确的图像代数运算方法,分别实现图像叠加、混合图像的分离和图像的局部显示效果。
数字图像处理教程(matlab版)
![数字图像处理教程(matlab版)](https://img.taocdn.com/s3/m/bde2137858fb770bf68a550d.png)
FILENAME参数指定文件名。FMT为保存文件采用的格式。 imwrite(I6,'nirdilatedisk2TTC10373.bmp');
/1、图像的读取和显示
三、图像的显示
imshow(I,[low high])
I为要显示的图像矩阵。[low high]为指定显示灰度图像的灰度范围。 高于high的像素被显示成白色;低于low的像素被显示成黑色;介于 High和low之间的像素被按比例拉伸后显示为各种等级的灰色。 figure;imshow(I6);title('The Main Pass Part of TTC10373');
t c logk s
c为尺度比例常数,s为源灰度值,t为变换后的目标灰 度值。k为常数。灰度的对数变换可以增强一幅图像 中较暗部分的细节,可用来扩展被压缩的高值图像中 的较暗像素。广泛应用于频谱图像的显示中。
Warning:log函数会对输入图像矩阵s中的每个元素进行
操作,但仅能处理double类型的矩阵。而从图像文件中得到的 图像矩阵大多是uint8类型的,故需先进行im2double数据类型 转换。
原 图 像
滤 波 后 图
像
/4、空间域图像增强 三、滤波器设计
h=fspecial(type,parameters)
parameters为可选项,是和所选定的滤波器类型type相关的 配置参数,如尺寸和标准差等。
type为滤波器的类型。其合法值如下:
合法取值 ‘average’
‘disk’ ‘gaussian’ ‘laplacian’
DA
DMax A0
DA
第11讲 Matlab数字图像处理
![第11讲 Matlab数字图像处理](https://img.taocdn.com/s3/m/2d6f2b3d7375a417866f8f6f.png)
表 11.1 函数 imfinfo 返回的结构数组基本内容
结构数组成员名 Filename FileMoDate FileSize Format FormatVersion Width Height BitDepth ColorType 所代表函数 文件名称 文件最后修改日期和时间 文件大小(单位是字节) 文件格式或扩展名(tif、jpf 和 png 等) 文件格式版本号 图像文件的宽度,单位为像素 图像文件的高度,单位为像素 图像文件中每一个像素所占位宽(真彩色图像每个像素占 24 位) 图像类型(grayscale-灰度图像,truecolor-RGB 图像,indexed-索引图像)
表111函数imfinfo返回的结构数组基本内容结构数组成员名所代表函数filename文件名称filemodate文件最后修改日期和时间filesize文件大小单位是字节format文件格式或扩展名tifjpf和pngformatversion文件格式版本号width图像文件的宽度单位为像素height图像文件的高度单位为像素bitdepth图像文件中每一个像素所占位宽真彩色图像每个像素占24colortype图像类型grayscale灰度图像truecolorrgb图像indexed索引图像函数imtool利用函数imtool可以将图像在图像工具浏览器中:该函数是利用颜色映射表 map 的逆算法,将 RGB 图像转换为索引 图像。 例11.3 将 RGB 图像转换为索引图像。 RGB = imread('ngc6543a.jpg'); %Matlab 工具箱中的图像文件 subplot(131), imagesc(RGB), zoom(4) %图像放大 4 倍 [IND,map]=rgb2ind(RGB,32); subplot(132), image(IND), colormap(map), zoom(4) subplot(133), imshow(RGB) %不带坐标轴刻度的显示,图像不放大 例 11.4 将 RGB 图像转换为索引图像。 clc, clear a=imread('football.jpg'); %Matlab 工具箱中的图像文件 [x1,m1]=rgb2ind(a,128); %将 RGB 图像转换成索引图像,颜色种数 N 至多 128 种 [x2,m2]=rgb2ind(a,0.1); %将 RGB 图像转换成索引图像,颜色种数 N 至多 11^3 种 m3=colorcube(128); %创建一个指定颜色数目的 RGB 颜色映射表 x3=rgb2ind(a,m3); subplot(131), imshow(x1,m1) %显示用最小方差法转换后的索引图像 subplot(132), imshow(x2,m2) %显示用均匀量化法转换后的索引图像 subplot(133), imshow(x3,m3) %显示用颜色近似法转换后的索引图像 3. 索引图像转换为 RGB 图像 在 Matlab 中,利用函数 ind2rgb 函数可以将索引图像转换为 RGB 图像。其调用格式为 RGB=ind2rgb(X,map):其中[X,map]指向索引图像,RGB 指向转换后的真彩色图像。 例 11.5 将索引图像转换为真彩色图像。 clc, clear [x,a]=imread('kids.tif'); %Matlab 工具箱中的图像文件 b=ind2rgb(x,a); %将索引图像转换为真彩色图像 subplot(121), imshow(x,a), subplot(122), imshow(b) 11.2.2 Matlab 图像工具箱中的几个函数介绍 1.imread 和 imwrite imread 函数是从图像文件读图像,它的一般调用格式为 A=imread(filename) 返回值 A 为矩阵,当图像是黑白和灰度图像时,A 为二维矩阵,当图像是彩色图像时,A 是三维矩阵,即 A 为 3 个二维矩阵,分别为 R、G、B 的像素值。 imwrite 函数是把图像写到图像文件中,它的一般调用格式为 imwrite(A,filename) 把图像 A(二维矩阵或三维矩阵)写到图像文件 filename 中。 例 11.6 读入一个 bmp 图像,然后再把图像保存成 jpg 格式。 clc, clear a=imread('data6.bmp'); %非工具箱图像文件 imwrite(a,'data7.jpg') %把图像保存成 jpg 格式 subplot(121), imshow(a) %显示原图像 subplot(122), imshow('data7.jpg') %显示 jpg 图像 2. 文件信息读取函数 imfinfo 在 Matlab 中,对图像进行操作和处理时,经常需要知道图像文件的文件名、文件格式、 图像大小、图像类型和数据类型等信息,可以直接调用 Matlab 函数 imfinfo 来读取图像文件 的信息。其调用格式如下。 info=imfinfo(filename):该函数读取文件 filename 的信息。其中,filename 指的是图像 文件的“文件名” (包括后缀名) 。info 是一个结构数组。不同格式的文件最终得到的 info 所包含的结构成员不同,但基本都包含前 9 个结构成员,具体如表 11.1 所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录实验一MATLAB数字图像处理初步 (2)实验二图像的代数运算 (7)实验三图像增强—灰度变换 (11)实验四图像增强—直方图变换 (14)实验五图像增强—空域滤波 (16)实验六图像的傅立叶变换 (22)实验七图像增强—频域滤波 (24)实验八彩色图像处理 (27)实验九图像分割 (33)实验十形态学运算 (36)实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。
2.熟练掌握在MATLAB中如何读取图像。
3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。
4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。
5.图像间如何转化。
二、实验内容及步骤1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg 文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。
7.用imread()读入图像:Lenna.jpg 和camema.jpg;8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;9.用figure,imshow()分别将Lenna.jpg和camema.jpg显示出来,观察两幅图像的质量。
10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
11.将每一步的函数执行语句拷贝下来,写入实验报告,并且将得到第3、9、10步得到的图像效果拷贝下来三、考核要点1、熟悉在MATLAB中如何读入图像、如何获取图像文件的相关信息、如何显示图像及保存图像等,熟悉相关的处理函数。
2、明确不同的图像文件格式,由于其具体的图像存储方式不同,所以文件的大小不同,因此当对同一幅图像来说,有相同的文件大小时,质量不同。
五、实验仪器与软件(1) PC计算机(2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox)(3) 实验所需要的图片四、实验内容f=imread('C:\Users\Gateway\Desktop\ͼƬ\flower.tif');whos f;imshow(f);imfinfo C:\Users\Gateway\Desktop\ͼƬ\flower.tifans =Filename: 'C:\Users\Gateway\Desktop\图片\flower.tif' FileModDate: '24-六月-2012 18:46:53'FileSize: 392018Format: 'jpg'FormatVersion: ''Width: 1600Height: 1200BitDepth: 24ColorType: 'truecolor'FormatSignature: ''NumberOfSamples: 3CodingMethod: 'Huffman'CodingProcess: 'Sequential'Comment: {}ans = %imfinfo压缩后的信息Filename: 'flower.jpg'FileModDate: '25-六月-2012 16:07:40'FileSize: 81013Format: 'jpg'FormatVersion: ''Width: 1600Height: 1200BitDepth: 24ColorType: 'truecolor'FormatSignature: ''NumberOfSamples: 3CodingMethod: 'Huffman'CodingProcess: 'Sequential'Comment: {}f=imread('C:\Users\Gateway\Desktop\ͼƬ\lenna.jpg'); g=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg'); figure;imshow(f);figure,imshow(g);imfinfo C:\Users\Gateway\Desktop\ͼƬ\lenna.jpgimfinfo C:\Users\Gateway\Desktop\ͼƬ\camera.jpgans =Filename: 'C:\Users\Gateway\Desktop\图片\lenna.jpg' FileModDate: '24-六月-2012 18:44:09'FileSize: 21307Format: 'jpg'FormatVersion: ''Width: 300Height: 300BitDepth: 24ColorType: 'truecolor'FormatSignature: ''NumberOfSamples: 3CodingMethod: 'Huffman'CodingProcess: 'Sequential'Comment: {}ans =Filename: 'C:\Users\Gateway\Desktop\图片\camera.jpg' FileModDate: '24-六月-2012 18:44:32'FileSize: 18653Format: 'jpg'FormatVersion: ''Width: 256Height: 256BitDepth: 24ColorType: 'truecolor'FormatSignature: ''NumberOfSamples: 3CodingMethod: 'Huffman'CodingProcess: 'Sequential'Comment: {}f=imread('C:\Users\Gateway\Desktop\ͼƬ\lenna.jpg');g=im2bw(f);figure,imshow(g);五、思考题(1) 简述MatLab软件的特点。
(2) MatLab软件可以支持哪些图像文件格式?doc imread(3) 说明函数imread 的用途格式以及各种格式所得到图像的性质。
(4) 为什么用I = imread(‘lena.bmp’) 命令得到的图像I 不可以进行算术运算?实验二图像的代数运算一、实验目的1.了解图像的算术运算在数字图像处理中的初步应用。
2.体会图像算术运算处理的过程和处理前后图像的变化。
二、实验步骤2.图像的减法运算3. 图像的乘法运算4.图像的除法运算三、实验内容1.图像的加法运算I=imread('C:\Users\Gateway\Desktop\ͼƬ\lenna2.jpg');J=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg');K = imadd(I,J);imshow(K);%lenna原图和camera尺寸大小不一样,不能相加,用ps将lenna裁剪成256*256与camera相同尺寸I=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg'); J=imadd(I,50);subplot(1,2,1);imshow(I);subplot(1,2,2);imshow(J);2.图像的减法运算I2=zeros(256,256);I=imread('rice.png');imshow(I)background=imopen(I,strel('disk',15));figure,imshow( background)I2=imsubtract(I,background);figure,imshow(I2)3. 图像的乘法运算I=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg'); J=immultiply(I,1.5);subplot(1,2,1);imshow(I);subplot(1,2,2);imshow(J);4.图像的除法运算I=imread('rice.png');J=double('rice.png');K=J*0.43+90;I2=unit8(J);Ip=imdivide(I,I2);imshow(Ip,[]);5.图像的四则代数运算I=imread('C:\Users\Gateway\Desktop\ͼƬ\lenna2.jpg'); J=imread('C:\Users\Gateway\Desktop\ͼƬ\camera.jpg'); Z=imlincomb(0.5,I,0.5,J,50);imshow(Z);四、思考题由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?从背景中提取图像实验三图像增强—灰度变换一、实验目的:1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。