%梯度,阈值梯度,二值化
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;