matlab图像分割程序

matlab图像分割程序,第1张

clear I=imread('bai.jpg') %读入图像

q=imadjust(I,[.2 .3 0.6 .7 1],[])%增强图像的对比度

j=rgb2gray(q) %彩色图像变灰度图像

j1=im2bw(q,230/255)%二值化

se90=strel('line',3,90) %构造元素

se0=strel('line',3,0) %同上

BW2=imdilate(j1,[se90 se0]) % 用构造裂睁段的元素膨胀

BW3=bwareaopen(BW2,100)%开 *** 作

BW3=~BW3%取反

BW4=bwareaopen(BW3,20)%开

BW5=bwperim(BW4)%计算BW4周长

[imx,imy]=size(BW5)计算长宽

L=bwlabel(BW5,8)%用不同的肆誉数字根据是否连通标记图像,

a=max(max(L))%得到L图像中标记结果的最大值

BW6=bwfill(BW5,'hole')%填充背景

I2=I

for i=1:3I2(:,:,i)=I2(:,:,i).*uint8(BW6)

end imshow(I2)有大神能逐条解释一下语早皮句吗,本人是菜鸟啊,跪求!!

直接用矩阵 *** 作就可以了,用imread读取图像,读取的结果在matlab中就枯歼是一个矩阵,然后用imwrite把你需要的部分写到新的文件中。

例如(时间有限,仅写了灰度图像的一部分):

I=imread('source.bmp')

n=ndims(I)%获得图像维数,如果是2就是灰度图局败茄像,3是彩色图像,需要分别处理

if n==2

[x,y]=size(I)%求图像大小

imwrite(I(1:round(x/4),1:round(y/4)),'file.bmp','bmp')

end

这样就把图桐察像分成4*4,最左上角的图像保存到file.bmp中了。

思路大致如此,手头没有matlab,上班ing,供你参考。

以上。

专业路过的老狼


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存