梯度,阈值梯度,二值化

%梯度,阈值梯度,二值化
clear all;                          % 清理命令窗口
[I,map]=imread('cameraman.tif');    % 读入图像
%[I,map]=imread('D:\Images\dog.bmp');
subplot(2,2,1),imshow(I,map);       % 显示原始图像
title('original image')             % 设置图像标题
axis on;
I=double(I);                        % 数据类型转换
[IX,IY]=gradient(I);                % 梯度
GM=sqrt(IX.*IX+IY.*IY);            
OUT1=GM;                            % 输出图像
subplot(2,2,2),imshow(OUT1,map);    % 直接梯度值输出
title('gradient value ')            % 设置图像标题
axis on;
OUT2=I;                             % 输出图像
J=find(GM>=15);                     % 阈值处理
OUT2(J)=GM(J);                      % 输出图像
subplot(2,2,3),imshow(OUT2,map);    % 显示处理后的图像
title('Thresholded  Gradient')    % 加阈梯度值输出;
axis on;
OUT3=I;                             % 输出图像
J=find(GM>=20);                     % 阈值黑白化
OUT3(J)=255;                        % 设置为白色
Q=find(GM<20);                      % 阈值黑白化
OUT3(Q)=0;                          % 设置为黑色
subplot(2,2,4),imshow(OUT3,map);    % 二值图像 
title('Two values');                % 设置图像标题
axis on;

 

你可能感兴趣的:(MATLAB)