图像锐化
概念:
图像锐化(image sharpening)是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,分为空间域处理和频域处理两类。图像锐化是为了突出图像上地物的边缘、轮廓,或某些线性目标要素的特征。这种滤波方法提高了地物边缘与周围像元之间的反差,因此也被称为边缘增强。
我的理解:
图像锐化就是通过使得图像的边缘更加突出,可以是原图与原图的高频部分叠加而成。
Sobel算子
I=imread('a2.jpg'); %读取图像
I1=rgb2gray(I); %将彩色图变成灰色图
imshow(I1),title('原图');
model=[-1,0,1;
-2,0,2;
-1,0,1];
[m,n]=size(I1);
I2=double(I1);
for i=2:m-1
for j=2:n-1
I2(i,j)=I1(i+1,j+1)+2*I1(i+1,j)+I1(i+1,j-1)-I1(i-1,j+1)-2*I1(i-1,j)-I1(i-1,j-1);
end
end
figure,
imshow(I2),title('边缘提取后的图像');
I2 = I2 + double(I1);
figure,
imshow(uint8(I2)),title('锐化后的图像');
效果图
Robert算子
I=imread('a2.jpg'); %读取图像
I1=rgb2gray(I); %将彩色图变成灰色图
imshow(I1),title('原图');
model=[0,-1;1,0];
[m,n]=size(I1);
I2=double(I1);
for i=2:m-1
for j=2:n-1
I2(i,j)=I1(i+1,j)-I1(i,j+1);
end
end
figure,imshow(I2),title('边缘提取后的图像');
I2 = I2 + double(I1);
figure,
imshow(uint8(I2)),title('锐化后的图像');
效果图
Prewitt算子
I=imread('a2.jpg');
I1=rgb2gray(I); %将彩色图变成灰色图
subplot(1,2,1);
imshow(I1),title('原图');
model=[-1,0,1;
-1,0,1;
-1,0,1];
[m,n]=size(I1);
I2=I1;
for i=2:m-1
for j=2:n-1
tem=I1(i-1:i+1,j-1:j+1);
tem=double(tem).*double(model);
I2(i,j)=sum(sum(tem));
end
end
figure,
imshow(uint8(I2)),title('边缘提取后的图像');
效果图
laplacian算子
I=imread('C:\Users\LiCongliang\Desktop\数字图像处理\数字图像处理第五次作业\tea.png');
I1=mat2gray(I);%实现图像矩阵的归一化操作
[m,n]=size(I1);
newGrayPic=I1;%为保留图像的边缘一个像素
LaplacianNum=0;%经Laplacian算子计算得到的每个像素的值
LaplacianThreshold=0.2;%设定阈值
for j=2:m-1 %进行边界提取
for k=2:n-1
LaplacianNum=abs(4*I1(j,k)-I1(j-1,k)-I1(j+1,k)-I1(j,k+1)-I1(j,k-1));
if(LaplacianNum > LaplacianThreshold)
newGrayPic(j,k)=255;
else
newGrayPic(j,k)=0;
end
end
end
I2=rgb2gray(I); %将彩色图变成灰色图
imshow(I2),title('原图');
figure,
imshow(newGrayPic);
title('Laplacian算子的处理结果')
效果图