matlab程序 谁能读

matlab程序 谁能读,第1张

这函数不难啊,就是长了些

clc

clear all

%reading and showing

f1=imread('foreground.jpg') %读图到f1

%converting color image to grayimage

f2=rgb2gray(f1) %变成灰度图象

figure(1),imshow(f2)%显示

%reading and showing

f3=imread('background.jpg') %读背景图

%converting color image to grayimage

f4=rgb2gray(f3) %转成灰度图象

figure(2),imshow(f4) %显孙陵示凳凯信背景图

%background subtracting

f5=abs(double(f2)-double(f4)) %第一幅图减去背景图

[M N]=size(f5)

T=20

for i=1:M

for j=1:N

if f5(i,j)>T

f5(i,j)=255

else

f5(i,j)=0

end

end

end

f5=uint8(f5)%运算后的图转为uint8型

figure(3)

imshow(f5) % 显示减去背景后的图

% imclose the image

se=strel('disk',3)

f6=imclose(f5,se) %用半径为3的圆对图进行闭 *** 作

figure(4)

imshow(f6) %显示结果

% fill the image

f8=imfill(f6) %对图象进行填充

figure(5)

imshow(f8) %显示填充结果

% smooth the image

f9=double(f8)/255

f10=medfilt2(f9,[3 3]) %中值滤波

figure(6)

imshow(f10,[]) %对图象进行平滑,并显示结果

% add label to the image

bw1=im2bw(f10)%将图形转成二值图像

[x,num]=bwlabel(bw1,4) %对4连通的连通域进行标注

% calculate the number of pixels of each labeled area

long=1:num

for i=1:num

[r,c]=find(x==i) %计算每个连通域枣轮的像素数

rc=[r c]

long(i)=size(rc,1)

end

% display the number of pixels of each labeled area

for j=1:num

disp(long(j)) %显示每个连通域的像素数

end

% calculate which area has the biggest number of pixels

max=0

for k=1:num

if(long(k)>max) %计算象素数最多的连通域

max=long(k)

m=k

end

end

% the label of the biggest area

m %最大的连通域的标号

% the number of pixels of the biggest area

max %最大的连通域的象素数

% get the image of the biggest area

[row column]=size(x)

for i=1:row

for j=1:column

if(x(i,j)==m) %取图像的最大连通域

x(i,j)=m

else x(i,j)=0

end

end

end

se=strel('disk',2)

x=imerode(x,se) %用半径为2的圆腐蚀图像

% display the image

figure(7),imshow(x) %显示结果

% get the edge of the image

y=edge(x,'canny') %用canny方法提取边界

figure(8),imshow(y) %显示提取的边界

你这个是提取原图像中最大物体的边界的程序吧!

好长阿,看得我眼睛都酸了!

给我追加一点儿辛苦分吧!

过来人的建议,用好python就好。matlab功能基本上芦改都能用python实现,即使现在不能,不就的将来一定能,matlab这个东西会逐渐被取代掉的。而且两个同属于脚本语言,用好python,读matlab程序不竖液难。

matlab现在主要陪纤判强在simulink,信息工程专业能用上的不多。

b=load('c:\xinhao001.mat')

这句就是在读取滚知数据,读取的数据路径就是C盘。当然如果你的衫备山数据不再C盘,再这样运行,matlab就会报错。这个你可以按照你数据的所在位置写路径。

b =

y: [1x901 double]

t: [1x901 double]

这句自然就是你的xinhao001.mat这个文件中所读出来的变量y,t及其分别或中的数据了。

(关于load函数,还有一种用法就是:load xinhao001.mat。但是这种用法要求该文件在当前活动路径)

9月


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8182364.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存