matlab图像处理小结

合集下载

matlab数字图像处理实验报告

matlab数字图像处理实验报告
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('除法图像')
h=fspecial('average');%均值滤波器
3基于卷积的图像滤波函数
imfilter函数,filter2函数,二维卷积conv2滤波,都可用于图像滤波, 用法类似,如:
i=imread('e:\w01.tif');
j=filter2(h,i);
或者:
h=fspecial(‘prewitt')
用法:BW = edge(l,'sobel',thresh,direction),
I为检测对象;边缘检测算子可用sobel,roberts,prewitt,zerocross,log,canny;
thresh指定阈值,检测时忽略所有小于阈值的边缘,默认自动选择阈值;direction方向,在所指定的方向direction上,用算子进行边缘检测horizontal(水平方向)、vertical(垂直方向)或both(两个方向)。

湖南大学医学影像学实验之matlab图像处理实验报告

湖南大学医学影像学实验之matlab图像处理实验报告

实验一、空域图像处理1、灰度线性变换:I=imread('trees.tif') ;figure(1) ; imshow(I) ; title('原图') ;J=double(I) ; %把I变成双精度并赋值给JJ=3*J+74 ; %对J进行线性变换J=uint8(J) ;figure(2) ; imshow(J) ; title('线性变换') ;图像:思考题:设定不同的斜率值和截距,显示效果会怎样?答:斜率增加,像素点的灰度值会根据本身的灰度值按比例增加,所以深色部分会变少,浅色部分会变多,整张图片上白色区域会变多;截距增加,所有像素点的灰度值都会增加,所以整张图片会变淡。

添加噪声:I=imread('trees.tif') ;M=imnoise(I,'salt & pepper',0.02) ; %添加椒盐噪声%因为每次添加椒盐噪声都是这两句代码,所以就不重复打出来了,直接看效果图下同~( ̄▽ ̄~)~~~图像:椒盐噪声+线性变换:椒盐噪声是随机产生的噪声,包括高灰度和低灰度的噪声。

线性变换基本上没有多少去噪的功能,更多的应该是用于改变对比度。

(中值)直方图均衡化:I=imread('rice.png') ;subplot(2,2,1) ; imshow(I) ; title('原图') ;subplot(2,2,3) ; imhist(I) ;J=double(I) ; %把I变成双精度并赋值给Jmax=J(1,1) ; min=J(1,1) %把J(1,1)赋值给max和min[N1,N2]=size(I) ; %得到矩阵I的行和列for i=1:N1for j=1:N2if J(i,j)>maxmax=J(i,j) ; %如果元素值大于max,则把元素值赋给maxendif J(i,j)<minmin=J(i,j) ; %如果元素值小于min,则把元素值赋给minendendendn=round((max+min))/2 ; %取元素最大值和最小值的中间值,即中间灰度值a=(255-max)/(max-n) ;b=min/(n-min) ;%根据原图中max和min,求得运算倍率a和b,以确保在接下来的运算中,原图像的max和min可以准确被定为到255和0for i=1:N1for j=1:N2if J(i,j)>=nJ(i,j)=J(i,j)+a*(J(i,j)-n) ;end%当元素灰度值大于或等于中间灰度值时,将该元素的灰度值变大if J(i,j)<nJ(i,j)=J(i,j)-b*(n-J(i,j)) ;end%当元素灰度值小于中间灰度值时,将该元素的灰度值变小endendK=uint8(real(J)) ;subplot(2,2,2) ; imshow(K) ;title('直方图均衡化') ;subplot(2,2,4) ; imhist(K) ;思考题:直方图均衡化是什么意思?它的主要用途是什么?答:直方图均衡化是将一副像素灰度级范围较窄的图像的像素灰度级的范围扩大并分布均匀。

matlab图像处理实验报告

matlab图像处理实验报告

matlab图像处理实验报告《Matlab图像处理实验报告》摘要:本实验报告通过使用Matlab软件进行图像处理实验,对图像进行了灰度化、二值化、边缘检测、图像增强等处理,通过实验结果分析,验证了Matlab在图像处理领域的实用性和有效性。

1. 实验目的本实验旨在通过Matlab软件进行图像处理实验,掌握图像处理的基本方法和技术,提高对图像处理算法的理解和应用能力。

2. 实验原理图像处理是对图像进行数字化处理的过程,主要包括图像获取、图像预处理、图像增强、图像分割和图像识别等步骤。

Matlab是一种功能强大的科学计算软件,具有丰富的图像处理工具箱,可用于图像的处理、分析和识别。

3. 实验内容(1)图像灰度化首先,通过Matlab读取一幅彩色图像,并将其转换为灰度图像。

利用Matlab 中的rgb2gray函数,将RGB图像转换为灰度图像,实现图像的灰度化处理。

(2)图像二值化接着,对灰度图像进行二值化处理,将图像转换为黑白二值图像。

利用Matlab 中的im2bw函数,根据设定的阈值对灰度图像进行二值化处理,实现图像的二值化处理。

(3)边缘检测然后,对二值图像进行边缘检测处理,提取图像的边缘信息。

利用Matlab中的edge函数,对二值图像进行边缘检测处理,实现图像的边缘检测处理。

(4)图像增强最后,对原始图像进行图像增强处理,改善图像的质量和清晰度。

利用Matlab 中的imadjust函数,对原始图像进行图像增强处理,实现图像的增强处理。

4. 实验结果分析通过实验结果分析,可以发现Matlab在图像处理领域具有较高的实用性和有效性。

通过Matlab软件进行图像处理实验,可以快速、方便地实现图像的处理和分析,提高图像处理的效率和精度,为图像处理技术的研究和应用提供了重要的工具和支持。

5. 结论本实验通过Matlab图像处理实验,掌握了图像处理的基本方法和技术,提高了对图像处理算法的理解和应用能力。

实验一 MATLAB_图像处理实验报告

实验一 MATLAB_图像处理实验报告

实验一 MATLAB_图像处理实验报告实验报告课程名称数字图像处理实验名称图像的几何变换姓名__吴征宇学号____ 3101110002 专业班级_ 实验日期__20XX_ 年_10 _月_18 日成绩_____ __ 指导教师___ _一、实验目的掌握图像平移、缩放、旋转与镜像变换;二、实验原理图像平移,自写平移函数function outImage=immove(inImage,Tx,Ty) [m, n] = size(inImage);%计算图象大小outImage = uint8(zeros(m+abs(Ty), n+abs(Tx))); if(Tx>0&&Ty>0) %往右下角平移的情况outImage(1+Ty:m+Ty,1+Tx:n+Tx) = inImage; else if(Tx0) %往左下角平移的情况outImage(1+Ty:m+Ty,1:n) = inImage; else % 往右上角平移的情况outImage(1:m,1+Tx:n+Tx) = inImage; end endend 主函数I=imread('C:\\Documents and Settings\\student\\桌面\\'); J=rgb2gray(I);imshow(J);title('原图像'); H=immove(J,100,-100);figure;imshow(H);title('平移后图像'); B=immove(J,80,-50);figure;imshow(B);title('平移后图像'); G=imresize(J,);figure;imshow(G);title('缩放后图像'); C=imresize(J,2);figure;imshow(C);title('缩放后图像'); D=imrotate(J,30);figure;imshow(D);title('旋转后图像'); E=imrotate(J,54);figure;imshow(E);title('旋转后图像'); F = flipdim(J,1);figure;imshow(F);title('垂直镜像图像'); G = flipdim(J,2);figure;imshow(G);title('水平镜像图像');三、实验环境Window 20XX Matlab1.利用imread( )函数读取一幅图像,假设其名为,存入一个数组中;a=imread('')2.利用whos 命令提取该读入图像的基本信息;3.利用imshow 函数来显示这幅图像;4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite 函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。

matlab数字图像处理实验报告

matlab数字图像处理实验报告

《数字图像处理实验报告》实验一图像的增强一.实验目的1.熟悉图像在MATLAB下的读写、输出;2.熟悉直方图;3.熟悉图像的线性指数等;4.熟悉图像的算术运算和几何变换。

二.实验仪器计算机、MATLAB软件三.实验原理图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。

从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像。

其基本原理是:对一幅图像的灰度直方图,经过一定的变换之后,使其成为均匀或基本均匀的,即使得分布在每一个灰度等级上的像素个数.f=H等或基本相等。

此方法是典刑的图像空间域技术处理,但是由于灰度直方图只是近似的概率密度函数,因此,当用离散的灰度等级做变换时,很难得到完全平坦均匀的结果。

频率域增强技术频率域增强是首先将图像从空间与变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。

常用的变换方法有傅里叶变换、DCT变换、沃尔什-哈达玛变换、小波变换等。

假定原图像为f(x,y),经傅立叶变换为F(u,v)。

频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像。

四.实验内容及步骤1.图像在MATLAB下的读写、输出;实验过程:>> I = imread('F:\image\');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 1962.给定函数的累积直方图。

matlab实验总结800字

matlab实验总结800字

matlab实验总结800字在本次实验中,我们使用Matlab软件进行了一系列的实验,主要涉及到图象处理方面的内容。

通过这次实验,我对Matlab的使用有了更深入的了解,也学到了许多图像处理的基本概念和方法。

以下是我对本次实验的总结。

首先,在实验中我们学习了Matlab的基本操作,包括变量的定义和赋值、矩阵的创建和运算、图像的读取和显示等。

这些基本操作对于后续的实验起到了很好的基础作用。

我们通过实验学会了如何使用Matlab进行图像文件的读取、显示和保存,这对于日后进行图像处理非常重要。

其次,在实验中我们主要学习了图像的直方图、增强和平滑处理方法。

通过直方图可以直观地观察到图像的灰度分布情况,帮助我们对图像进行分析和处理。

在实验中,我们学习了如何使用直方图均衡化方法来增强图像的对比度,使其更加清晰明亮。

同时,我们也学习了图像平滑处理方法,如中值滤波和均值滤波,对图像进行降噪处理。

此外,在实验中,我们还学习了图像的边缘检测和边缘连接方法。

边缘检测是图像处理中的重要步骤,可以用来提取图像中的轮廓和边界信息。

在实验中,我们通过学习Sobel算子和Canny边缘检测算法,掌握了如何进行图像的边缘检测。

同时,我们也学习了边缘连接方法,如霍夫变换和拉普拉斯变换,来进一步处理和优化图像的边缘。

最后,在实验中,我们还学习了图像的分割和特征提取方法。

图像分割可以将图像划分成多个子区域,从而更好地进行进一步的处理和分析。

在实验中,我们学习了阈值分割和边缘分割等方法,实现了图像的分割功能。

同时,我们也学习了图像的特征提取方法,如灰度共生矩阵和Gabor滤波器等,对图像进行进一步的特征提取。

总体而言,本次实验使我对Matlab的使用更加熟练,并且掌握了图像处理的基本概念和方法。

通过实验,我学到了很多实际操作的技巧和经验,为以后的科研工作和学习打下了坚实的基础。

同时,实验还培养了我分析和解决问题的能力,提高了实际动手操作的能力。

matlab实验心得总结

matlab实验心得总结

matlab实验心得总结在通过完成一系列的Matlab实验后,我对这个强大的数学计算软件有了更深入的认识。

通过这些实验,我不仅学到了如何使用Matlab进行数据处理和分析,还体会到了它在科学研究和工程应用中的广泛使用。

实验一:Matlab基础操作在第一次接触Matlab时,我首先学习了它的基本操作。

Matlab提供了友好的用户界面和丰富的命令工具,使得数据处理变得简单且高效。

在实验中,我学会了如何定义变量、进行基本的数学运算和使用矩阵操作等。

这些基础操作为后续的实验打下了坚实的基础。

实验二:数据可视化数据可视化在科学研究和工程领域中起着重要的作用。

在这个实验中,我学会了如何利用Matlab绘制各种图形,如折线图、散点图和柱状图等。

通过调整图形的样式和颜色,使得数据更加直观和易于理解。

同时,我还学会了如何添加标题、坐标轴标签和图例,使得图形具有更好的可读性。

实验三:模拟与仿真Matlab不仅可以进行数据处理和图形绘制,还可以进行模拟和仿真。

在这个实验中,我学会了如何使用Matlab进行数学模型的建立和仿真。

通过设定合适的参数和方程,我可以模拟出各种现实世界中的物理、生物和工程现象。

这对于科学研究和工程设计具有重要的意义。

实验四:信号处理信号处理是Matlab的一个重要应用领域。

在这个实验中,我学会了如何使用Matlab对信号进行分析和处理。

通过应用不同的滤波器,我可以去除信号中的噪声和干扰,提取出感兴趣的信息。

同时,我还学会了如何进行频域分析,通过傅里叶变换将信号转换到频率域,进一步分析信号的频谱特性。

实验五:数值计算Matlab还提供了强大的数值计算功能。

在这个实验中,我学会了如何使用Matlab进行数值计算和优化。

通过使用不同的数值求解方法,我可以解决复杂的数学方程和优化问题,得到精确的计算结果。

这对于科学研究和工程计算具有重要的价值。

总结起来,通过这些实验,我对Matlab的应用能力有了明显的提升。

matlab实验报告总结

matlab实验报告总结

matlab实验报告总结
《利用Matlab进行实验的总结与分析》
在科学研究和工程领域中,Matlab是一个非常强大的工具,可以用于数据分析、图像处理、信号处理等多种应用。

本文将总结利用Matlab进行实验的经验,并分析实验结果。

首先,我们使用Matlab进行了数据分析实验。

通过Matlab的统计工具箱,我
们能够快速地对大量数据进行处理和分析,包括数据的描述统计、回归分析、
假设检验等。

通过实验,我们发现Matlab的数据分析功能非常强大,可以帮助我们更好地理解数据的特征和规律。

其次,我们进行了图像处理实验。

Matlab提供了丰富的图像处理函数和工具,
可以对图像进行滤波、边缘检测、分割等操作。

通过实验,我们发现Matlab能够快速地对图像进行处理,并且可以通过编写自定义的算法来实现更复杂的图
像处理任务。

此外,我们还进行了信号处理实验。

Matlab提供了丰富的信号处理函数和工具,可以对信号进行滤波、频谱分析、时频分析等操作。

通过实验,我们发现
Matlab在信号处理领域也有着非常强大的功能,可以帮助我们更好地理解和处
理各种类型的信号数据。

综上所述,利用Matlab进行实验可以帮助我们更好地理解和分析数据、图像和信号。

Matlab提供了丰富的工具和函数,可以帮助我们快速地完成各种实验任务,并且可以通过编写自定义的算法来实现更复杂的任务。

因此,Matlab是一
个非常强大的实验工具,可以在科学研究和工程领域中得到广泛的应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.function [center, r] = solve_circle(pt1, pt2, pt3)2.%Effect: solve the circle which across points 'pt1', 'pt2' and 'pt3'3.%Inputs:4.%pt1, pt2, pt3: [x, y]5.%center: the circle center [x0; y0]6.%r: the radius of the circle7.%Author: Su dongcai at 2012/1/28. A = zeros(2, 2); B = zeros(2, 1);9.[A(1, :), B(1)] = circle2line(pt1, pt2);10.[A(2, :), B(2)] = circle2line(pt2, pt3);11.center = A\B;12.r = norm(pt1' - center);13.14.function [A, B] = circle2line(pt1, pt2)15.%Effect: cast 2 circles equation into 1 linear equation:16.%(a-x1)^2 + (b-y1)^2 = r^2 |17.% |==> 2(x1-x2)a + 2(y1-y2)b = (x1^2 + y1^2) - (y2^2 + y2^2)18.%(a-x2)^2 + (b-y2)^2 = r^2 |19.%Inputs:20.%pt1, pt2: [x1, y1], [x2, y2]21.%Outputs:22.%A: 2[x1-x2, y1-y2]23.%B: (x1^2 + y1^2) - (x2^2 + y2^2)24.%Author: Su dongcai at 2012/1/225.A = 2*(pt1 - pt2);26.B = norm(pt1)^2 - norm(pt2)^2;close all;clear;clc;>> i=imread('rice.png');%>> imshow(i);>> background=imopen(i,strel('disk',15));>> i2=imsubtract(i,background);%>> figure,imshow(i2);>> i3=imadjust(i2,stretchlim(i2),[0 1]);%>> figure,imshow(i3);>> level=graythresh(i3);>> bw=im2bw(i3,level);%>> figure,imshow(bw);>> [labeled,numobjects]=bwlabel(bw,4);graindata=regionprops(labeled,'all');close all;clear;clc;i=imread('rice.png');background=imopen(i,strel('disk',15));i2=imsubtract(i,background);i3=imadjust(i2,stretchlim(i2),[0 1]);level=graythresh(i3);bw=im2bw(i3,level);[labeled,numobjects]=bwlabel(bw,4);data=regionprops(labeled,'all');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%2006.6.2close all;clear;clc;>> i=imread('r.jpg');%>> figure,imshow(i);>> imgray=rgb2gray(i);>> figure,imshow(imgray)>> background=imopen(imgray,strel('disk',15));>> i2=imsubtract(imgray,background);%>> figure,imshow(i2);>> i3=imadjust(i2,stretchlim(i2),[0 1]);%>> figure,imshow(i3);>> level=graythresh(i3);>> bw=im2bw(i3,level);%>> figure,imshow(bw);>> imnobord=imclearborder(bw,4);%>> figure,imshow(imnobord);>> [labeled,numobjects]=bwlabel(bw,4);>> rgb_label=label2rgb(labeled,@spring,'c','shuffle');>> figure,imshow(rgb_label);>> graindata=regionprops(labeled,'all');hold on;for k=1:numobjectslab=sprintf('%d',k);text(graindata(k).Centroid(1),graindata(k).Centroid(2),lab,'Color','k'); endhold off;%剔除碎米粒>> idxdown=find([graindata.Area]<150); %剔除碎米粒little=ismember(labeled,idxdown);figure,imshow(little);[lab_little,num_little]=bwlabel(little,4);rgb_little=label2rgb(lab_little,@spring,'c','shuffle');figure,imshow(rgb_little);little_data=regionprops(lab_little,'all');hold on;for k=1:num_littlelab=sprintf('%d',k);text(little_data(k).Centroid(1),little_data(k).Centroid(2),lab,'Color','k'); endhold off;%>> graindata(idxdown,:)=[];%剔除碎米粒%剔除连接米粒>> idxup=find([graindata.Area]>250); %剔除连接米粒big=ismember(labeled,idxup);figure,imshow(big);[lab_big,num_big]=bwlabel(big,4);rgb_big=label2rgb(lab_big,@spring,'c','shuffle');figure,imshow(rgb_big);big_data=regionprops(lab_big,'all');hold on;for k=1:num_biglab=sprintf('%d',k);text(big_data(k).Centroid(1),big_data(k).Centroid(2),lab,'Color','k');endhold off;%>> graindata(numup,:)=[];%剔除连接米粒%获取完整米粒idxsuit=find([graindata.Area]>=150&[graindata.Area]<=250);suit=ismember(labeled,idxsuit);figure,imshow(suit); %获取完整米粒[lab_suit,num_suit]=bwlabel(suit,4);suit_data=regionprops(lab_suit,'all');hold on;for k=1:num_suitsignature=sprintf('%d',k);text(suit_data(k).Centroid(1),suit_data(k).Centroid(2),signature,'Color','r'); endhold off;%获取完整米粒whos graindatawhos little_datawhos big_datawhos suit_data>> graindata>> mean([graindata.Area])>> mean([graindata.Eccentricity])>> mean([graindata.MajorAxisLength])>> mean([graindata.MinorAxisLength])>> mean([graindata.EquivDiameter])>> figure,hist([graindata.Area],20);>> figure,hist([graindata.Eccentricity],20);>> figure,hist([graindata.MajorAxisLength],20);>> figure,hist([graindata.MinorAxisLength],20);>> figure,hist([graindata.EquivDiameter],20);data=[graindata.Area]data=[graindata.Centroid]data=[graindata.BoundingBox]data=[graindata.SubarrayIdx]data=[graindata.MajorAxisLength]data=[graindata.MinorAxisLength]data=[graindata.Eccentricity]data=[graindata.Orientation]data=[graindata.ConvexHull]data=[graindata.ConvexImage]data=[graindata.ConvexArea]data=[graindata.Image]data=[graindata.FilledImage]data=[graindata.FilledArea]data=[graindata.EulerNumber]data=[graindata.Extrema]data=[graindata.EquivDiameter]data=[graindata.Solidity]data=[graindata.Extent]data=[graindata.PixelIdxList]data=[graindata.PixelList]Area 计算各个连通区域中的象素总数BoundingBox 包含相应区域的最小矩形Centroid 给出每个区域的质心MajorAxisLength 与区域具有相同标准二阶中心矩(又叫标准差)的椭圆的长轴长度MinorAxisLength 与区域具有相同标准二阶中心矩的椭圆的短轴长度Eccentricity 与区域具有相同标准二阶中心矩的椭圆的离心率Orientation 与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角Image 二值图像,与某区域具有相同大小的逻辑矩阵。

相关文档
最新文档