newseg.m

来自「自己编的阈值分割的源程序」· M 代码 · 共 56 行

M
56
字号
clear all;
clc;
[filename,pathname]=uigetfile({'*tif','TIF Files'},'打开文件');
if isequal([filename,pathname],[0,0])
    return
else
    file=fullfile(pathname,filename);
end
T=imread(file);
[m,n]=size(T);
T=double(T);
subm=1;
subn=1;
s=strcat(num2str(n),'*',num2str(m),'大小的图片');
while subm<2
answer=inputdlg('请输入将原图分割成M*N,M=',s);
subm=str2num(char(answer));  
end
while subn<2
answer=inputdlg('请输入将原图分割成M*N,N=',s);
subn=str2num(char(answer));  
end
x1=floor(m/subm);
y1=floor(n/subn);
sum=0;

T=double(T);
B=zeros(size(T));
[m,n]=size(T);
h=waitbar(0,'请等待...');

for i=1:x1:floor(m/x1)*x1
    for j=1:y1:floor(n/y1)*y1
                for p=1:x1
                   for q=1:y1 
                      sum=sum+T(i+p-1,j+q-1);             
                  end 
               end 
             sum=sum/(x1*y1);        
          for p=1:x1
               for q=1:y1
                   thex=i+p-1;
                   they=j+q-1;
                 if T(thex,they)>=sum&&B(thex,they)==0
                           B(thex,they)=255;
                       else
                           B(thex,they)=0;
                       end  
                   end              
         end
         sum=0;
     end
       waitbar(i/m);      
end
close(h);
   imshow(B);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?