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);%顯示圖像