求matlab关于matlab图像处理程序的程序,以下五步的程序 谢谢

经典图像处理MATLAB小程序_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
经典图像处理MATLAB小程序
上传于||文档简介
&&经​典​图​像​处​理​M​A​T​L​A​B​小​程​序
大小:2.44KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢商品编号:
京 东 价:
[定价:¥]
支  持:
搭配赠品:
服务支持:
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
学以致用·MATLAB图像处理:程序实现与模块化仿真
加载中,请稍候...
商品介绍加载中...
扫一扫,精彩好书免费看
京东商城向您保证所售商品均为正品行货,京东自营商品开具机打发票或电子发票。
凭质保证书及京东商城发票,可享受全国联保服务(奢侈品、钟表除外;奢侈品、钟表由京东联系保修,享受法定三包售后服务),与您亲临商场选购的商品享受相同的质量保证。京东商城还为您提供具有竞争力的商品价格和,请您放心购买!
注:因厂家会在没有任何提前通知的情况下更改产品包装、产地或者一些附件,本司不能确保客户收到的货物与商城图片、产地、附件说明完全一致。只能确保为原厂正货!并且保证与当时市场上同样主流新品一致。若本商城没有及时更新,请大家谅解!
权利声明:京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用。
注:本站商品信息均来自于合作方,其真实性、准确性和合法性由信息拥有者(合作方)负责。本站不提供任何保证,并不承担任何法律责任。
印刷版次不同,印刷时间和版次以实物为准。
价格说明:
京东价:京东价为商品的销售价,是您最终决定是否购买商品的依据。
划线价:商品展示的划横线价格为参考价,该价格可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在京东平台上曾经展示过的销售价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:如无特殊说明,折扣指销售商在原价、或划线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。
异常问题:商品促销信息以商品详情页“促销”栏中的信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
浏览了该商品的用户还浏览了
加载中,请稍候...
联系供应商
七日畅销榜
新书热卖榜
iframe(src='///ns.html?id=GTM-T947SH', height='0', width='0', style='display: visibility:')【转】matlab图像处理程序大集合
matlab图像处理程序大集合
1.图像反转
MATLAB程序实现如下:
I=imread('xian.bmp');
J=double(I);
J=-J+(256-1);&&&&&&&&&&&&&&&&
%图像反转线性变换
H=uint8(J);
subplot(1,2,1),imshow(I);
subplot(1,2,2),imshow(H);
2.灰度线性变换
MATLAB程序实现如下:
I=imread('xian.bmp');
subplot(2,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系
I1=rgb2gray(I);
subplot(2,2,2),imshow(I1);
title('灰度图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系
J=imadjust(I1,[0.1 0.5],[]); %局部拉伸,把[0.1 0.5]内的灰度拉伸为[0 1]
subplot(2,2,3),imshow(J);
title('线性变换图像[0.1
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
K=imadjust(I1,[0.3 0.7],[]); %局部拉伸,把[0.3 0.7]内的灰度拉伸为[0 1]
subplot(2,2,4),imshow(K);
title('线性变换图像[0.3
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
3.非线性变换
MATLAB程序实现如下:
I=imread('xian.bmp');
I1=rgb2gray(I);
subplot(1,2,1),imshow(I1);
title('灰度图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
J=double(I1);
J=40*(log(J+1));
H=uint8(J);
subplot(1,2,2),imshow(H);
title('对数变换图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
4.直方图均衡化
MATLAB程序实现如下:
I=imread('xian.bmp');
I=rgb2gray(I);
subplot(2,2,1);
imshow(I);
subplot(2,2,2);
imhist(I);
I1=histeq(I);
subplot(2,2,1);
imshow(I1);
subplot(2,2,2);
imhist(I1);
5.线性平滑滤波器用MATLAB实现领域平均法抑制噪声程序:
I=imread('xian.bmp');
subplot(231)
title('原始图像')
I=rgb2gray(I);
I1=imnoise(I,'salt & pepper',0.02);
subplot(232)
imshow(I1)
title('添加椒盐噪声的图像')
k1=filter2(fspecial('average',3),I1)/255;&&&&&&&&&
%进行3*3模板平滑滤波
k2=filter2(fspecial('average',5),I1)/255;&&&&&&&&&
%进行5*5模板平滑滤波k3=filter2(fspecial('average',7),I1)/255;&&&&&&&&&
%进行7*7模板平滑滤波
k4=filter2(fspecial('average',9),I1)/255;&&&&&&&&&
%进行9*9模板平滑滤波
subplot(233),imshow(k1);title('3*3模板平滑滤波');
subplot(234),imshow(k2);title('5*5模板平滑滤波');
subplot(235),imshow(k3);title('7*7模板平滑滤波');
subplot(236),imshow(k4);title('9*9模板平滑滤波');
6.中值滤波器用MATLAB实现中值滤波程序如下:
I=imread('xian.bmp');
I=rgb2gray(I);
J=imnoise(I,'salt&pepper',0.02);
subplot(231),imshow(I);title('原图像');
subplot(232),imshow(J);title('添加椒盐噪声图像');
k1=medfilt2(J);&&&&&&&&&&&
%进行3*3模板中值滤波
k2=medfilt2(J,[5,5]);&&&&&
%进行5*5模板中值滤波
k3=medfilt2(J,[7,7]);&&&&&
%进行7*7模板中值滤波
k4=medfilt2(J,[9,9]);&&&&&
%进行9*9模板中值滤波
subplot(233),imshow(k1);title('3*3模板中值滤波');
subplot(234),imshow(k2);title('5*5模板中值滤波');
subplot(235),imshow(k3);title('7*7模板中值滤波');
subplot(236),imshow(k4);title('9*9模板中值滤波');
7.用Sobel算子和拉普拉斯对图像锐化:
I=imread('xian.bmp');
subplot(2,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
I1=im2bw(I);
subplot(2,2,2),imshow(I1);
title('二值图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
H=fspecial('sobel');&&&&
%选择sobel算子
J=filter2(H,I1);&&&&&&&&&&&
subplot(2,2,3),imshow(J);
title('sobel算子锐化图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
h=[0 1 0,1 -4 1,0 1 0];&&
%拉普拉斯算子
J1=conv2(I1,h,'same');&&&&&&&&&&&
subplot(2,2,4),imshow(J1);
title('拉普拉斯算子锐化图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
8.梯度算子检测边缘用MATLAB实现如下:
I=imread('xian.bmp');
subplot(2,3,1);
imshow(I);
title('原始图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
I1=im2bw(I);
subplot(2,3,2);
imshow(I1);
title('二值图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
I2=edge(I1,'roberts');
subplot(2,3,3);
imshow(I2);
title('roberts算子分割结果');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
I3=edge(I1,'sobel');
subplot(2,3,4);
imshow(I3);
title('sobel算子分割结果');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
I4=edge(I1,'Prewitt');
subplot(2,3,5);
imshow(I4);
title('Prewitt算子分割结果');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
9.LOG算子检测边缘用MATLAB程序实现如下:
I=imread('xian.bmp');
subplot(2,2,1);
imshow(I);
title('原始图像');
I1=rgb2gray(I);
subplot(2,2,2);
imshow(I1);
title('灰度图像');
I2=edge(I1,'log');
subplot(2,2,3);
imshow(I2);
title('log算子分割结果');
10.Canny算子检测边缘用MATLAB程序实现如下:
I=imread('xian.bmp');
subplot(2,2,1);
imshow(I);
title('原始图像')
I1=rgb2gray(I);
subplot(2,2,2);
imshow(I1);
title('灰度图像');
I2=edge(I1,'canny');
subplot(2,2,3);
imshow(I2);
title('canny算子分割结果');
11.边界跟踪(bwtraceboundary函数)
I=imread('xian.bmp');
imshow(I);
title('原始图像');
I1=rgb2gray(I);&&&&&&&&&&&&&&&
%将彩色图像转化灰度图像
threshold=graythresh(I1);&&&&&&&
%计算将灰度图像转化为二值图像所需的门限
BW=im2bw(I1,
threshold);&&&&&&
%将灰度图像转化为二值图像
imshow(BW);
title('二值图像');
dim=size(BW);
col=round(dim(2)/2)-90;&&&&&&&&
%计算起始点列坐标
row=find(BW(:,col),1);&&&&&&&&&
%计算起始点行坐标
connectivity=8;
num_points=180;
contour=bwtraceboundary(BW,[row,col],'N',connectivity,num_points);
imshow(I1);
plot(contour(:,2),contour(:,1), 'g','LineWidth' ,2);
title('边界跟踪图像');
12.Hough变换
I= imread('xian.bmp');
rotI=rgb2gray(I);
subplot(2,2,1);
imshow(rotI);
title('灰度图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&
BW=edge(rotI,'prewitt');
subplot(2,2,2);
imshow(BW);
title('prewitt算子边缘检测后图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&
[H,T,R]=hough(BW);
subplot(2,2,3);
imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit');
title('霍夫变换图');
xlabel('\theta'),ylabel('\rho');
axis on , axis normal,
P=houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));
x=T(P(:,2));y=R(P(:,1));
plot(x,y,'s','color','white');
lines=houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);
subplot(2,2,4);,imshow(rotI);
title('霍夫变换图像检测');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&
max_len=0;
for k=1:length(lines)
xy=[lines(k).point1;lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
len=norm(lines(k).point1-lines(k).point2);
if(len&max_len)
plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');
13.直方图阈值法用MATLAB实现直方图阈值法:
I=imread('xian.bmp');
I1=rgb2gray(I);
subplot(2,2,1);
imshow(I1);
title('灰度图像')
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
[m,n]=size(I1);&&&&&&&&&&&&&&&&&&&&&&&&&&&
%测量图像尺寸参数
GP=zeros(1,256);&&&&&&&&&&&&&&&&&&&&&&&&&&
%预创建存放灰度出现概率的向量
for k=0:255
GP(k+1)=length(find(I1==k))/(m*n);&&&
%计算每级灰度出现的概率,将其存入GP中相应位置
subplot(2,2,2),bar(0:255,GP,'g')&&&&&&&&&&&&&&&&&&
%绘制直方图
title('灰度直方图')
xlabel('灰度值')
ylabel('出现概率')
I2=im2bw(I,150/255);&&
subplot(2,2,3),imshow(I2);
title('阈值150的分割图像')
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
I3=im2bw(I,200/255);&& %
subplot(2,2,4),imshow(I3);
title('阈值200的分割图像')
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
自动阈值法:Otsu法用MATLAB实现Otsu算法:
I=imread('xian.bmp');
subplot(1,2,1),imshow(I);
title('原始图像')
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
level=graythresh(I);&&&&
%确定灰度阈值
BW=im2bw(I,level);
subplot(1,2,2),imshow(BW);
title('Otsu法阈值分割图像')
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
15.膨胀操作
I=imread('xian.bmp');&&&&&&&&&
I1=rgb2gray(I);
subplot(1,2,1);
imshow(I1);
title('灰度图像')&&&&&
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
se=strel('disk',1);&&&&&&&&&
%生成圆形结构元素
I2=imdilate(I1,se);&&&&&&&&&&&&
%用生成的结构元素对图像进行膨胀
subplot(1,2,2);
imshow(I2);
title('膨胀后图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
16.腐蚀操作
MATLAB实现腐蚀操作
I=imread('xian.bmp');&&&&&&&&&
I1=rgb2gray(I);
subplot(1,2,1);
imshow(I1);
title('灰度图像')&&&&&
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
se=strel('disk',1);&&&&&&
%生成圆形结构元素
I2=imerode(I1,se);&&&&&&&
%用生成的结构元素对图像进行腐蚀
subplot(1,2,2);
imshow(I2);
title('腐蚀后图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
17.开启和闭合操作用MATLAB实现开启和闭合操作
I=imread('xian.bmp');&&&&&&&&&
subplot(2,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系
I1=rgb2gray(I);
subplot(2,2,2),imshow(I1);
title('灰度图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系&&&&&&&&&&&&&&&&&&
se=strel('disk',1);&&&&
%采用半径为1的圆作为结构元素
I2=imopen(I1,se);&&&&&&&&
I3=imclose(I1,se);&&&&&&&
subplot(2,2,3),imshow(I2);
title('开启运算后图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系
subplot(2,2,4),imshow(I3);
title('闭合运算后图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系
18.开启和闭合组合操作
I=imread('xian.bmp');&&&&&&&&&
subplot(3,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系
I1=rgb2gray(I);
subplot(3,2,2),imshow(I1);
title('灰度图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系&&&&&&&&&&&&&&&&&&
se=strel('disk',1);&&&&
I2=imopen(I1,se);&&&&&&&&
I3=imclose(I1,se);&&&&&&&
subplot(3,2,3),imshow(I2);
title('开启运算后图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系
subplot(3,2,4),imshow(I3);
title('闭合运算后图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系
se=strel('disk',1);
I4=imopen(I1,se);
I5=imclose(I4,se);
subplot(3,2,5),imshow(I5);&&&&&&&
%开—闭运算图像
title('开—闭运算图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系
I6=imclose(I1,se);
I7=imopen(I6,se);
subplot(3,2,6),imshow(I7);&&&&&&&
%闭—开运算图像
title('闭—开运算图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示坐标系&&&
19.形态学边界提取利用MATLAB实现如下:
I=imread('xian.bmp');&&&&&&&&&
subplot(1,3,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
I1=im2bw(I);
subplot(1,3,2),imshow(I1);
title('二值化图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
%显示网格线
&&&&&&&&&&&&&&&&&
%显示坐标系
I2=bwperim(I1);&&&&&&&&&&&&&&&&
%获取区域的周长
subplot(1,3,3),imshow(I2);
title('边界周长的二值图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&
20.形态学骨架提取利用MATLAB实现如下:
I=imread('xian.bmp');
subplot(2,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
I1=im2bw(I);
subplot(2,2,2),imshow(I1);
title('二值图像');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&
I2=bwmorph(I1,'skel',1);
subplot(2,2,3),imshow(I2);
title('1次骨架提取');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&&&
I3=bwmorph(I1,'skel',2);
subplot(2,2,4),imshow(I3);
title('2次骨架提取');
axis([50,250,50,200]);
&&&&&&&&&&&&&&&
21.直接提取四个顶点坐标
I = imread('xian.bmp');
I = I(:,:,1);
BW=im2bw(I);
imshow(~BW)
[x,y]=getpts
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。君,已阅读到文档的结尾了呢~~
matlab图像处理 matlab图像处理教程 matlab数字图像处理 精通matlab图像处理 matlab图像处理宝典 matlab图像处理函数 matlab图像处理程序 matlab与图像处理 matlab中图像处理 matlab图形图像处理
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
图像处理matlab源程序
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口人人网 - 抱歉
哦,抱歉,好像看不到了
现在你可以:
看看其它好友写了什么
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&}

我要回帖

更多关于 matlab图像处理程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信