圖像銳化
概念:
圖像銳化(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算子的處理結果')
效果圖
更多
獲取更多資料、代碼,微信公衆號:海轟Pro
回覆 海轟 即可