matlab图像分割算法
Ⅰ 如何利用matlab按照图形从图片中分割出来
你需要先知道每一个O占的大小 比如占8*8个像素 SkipStep=8;%每一个O的大小 和遍历的补偿 M=8; N=8; n=0;%编号 I=imread('**.jpg'); I=rgb2gray(I);%灰度转化 [H,W]=size(I); xStepNum = floor((W-N)/SkipStep+1);%朝负无穷方向取整 宽度方向block移动的次数 yStepNum = floor((H-M)/SkipStep+1);%朝负无穷方向取整 高度y方向移动的次数 for j=1:xStepNum%一列一列来取的 for m=1:yStepNum n=n+1; PImg=I((m-1)*SkipStep+1:(m-1)*SkipStep+M,(k-1)*SkipStep+1:(k-1)*SkipStep+N);%分割图像 y='jpg'; w=strcat(n,'.',y); imwrite(PImg,w);%保存分割出来的图片 格式为jpg 名字为编号n end end 但是这样也把不是O的取出来了,你可以知道没有O的地方的n 你到时候不用即可
Ⅱ 如何用matlab进行图像的分割
1、设贺信置x向量步长,生成绘图用巧拍早数据。
Ⅲ 请高手帮忙:MATLAB程序 编写一个程序,要求实现下列算法:首先将图像分割成许多8X8的子图像
clearall;
closeall;
clc;
I=double(imread('elain.bmp'));%读入图像
imshow(uint8(I));%显示图像
[Mro,Nco]=size(I);%获得读入图像的大小
fun1=@fft2;%获得fft变换函数的句柄
Imagefft=blkproc(I,[8,8],fun1);%图像块进行fft变换
Imtemp=double(zeros(Mro,Nco));%设置临时变量用于存处理后的图像值
forii=1:8:Mro
forjj=1:8:Nco
Imtemp(ii:ii+3,jj:jj+3)=Imagefft(ii:ii+3,jj:jj+3);%舍去小的变换系数
end
end
fun2=@ifft2;
Imageifft=blkproc(Imtemp,[8,8],fun2);%分块逆变换
huifu=uint8(abs(Imageifft));%取整
figure;
imshow(huifu);%显示图像