實驗目的
1、掌握一階銳化算法的工作原理和算法實現。
2、掌握二階銳化算法的工作原理和算法實現。
實驗內容
測試圖片
鏈接: https://pan.baidu.com/s/1-7zn44maHCCI7w9qaZjvxg
提取碼: dakh
實現拉普拉斯銳化
實驗代碼
im = imread('.\im\Grayblur6.png');
imshow(im); title('原始圖像');
im0 = im;
im = double(im);
H = [0 -1 0;-1 4 -1;0 -1 0];
im1 = filter2(H,im);
im2 = uint8(im1+im);
figure; imshow(im2); title('Laplacian銳化疊加後圖像');
im_L0 = uint8(im1);
figure; imshow(im_L0); title('Laplacian銳化');
im=imread('im\Grayblur6.png')
imshow(im);
title('原始圖像');
im0=im;
im=double(im);
H=[0 -1 0;-1 4 -1;0 -1 0];
im1=filter2(H,im);
im2=uint8(im1+im);
figure,imshow(im2);
title('Laplacian銳化疊加後的圖像');
im_L0=uint8(im1);
figure,imshow(im_L0);
title('Laplacian銳化');
maxV=max(max(im1));
minV=min(min(im1));
delta=0;
if(minV<0)
delta=abs(minV);
end
實驗結果
實現Sobel微分算子的代碼
實驗代碼
im = imread('.\im\Grayblur6.png');
imshow(im); title('原始圖像');
im = double(im);
H = [-1 0 1;-2 0 2;-1 0 1];
Dy = filter2(H,im);
H = [-1 -2 -1;0 0 0;1 2 1];
Dx = filter2(H,im);
im_2 = sqrt(Dx.^2+Dy.^2);
im_2 = uint8(im_2);
figure; imshow(im_2); title('Sobel銳化圖像'); %顯示濾波後的圖像
im_3 = uint8(im+sqrt(Dx.^2+Dy.^2)*0.1);
figure; imshow(im_3); title('Sobel銳化疊加圖像'); %顯示濾波後的圖像
實驗結果
實現交叉微分算法(Roberts算法)
實驗步驟
讀入圖像到矩陣F
得到F的行列數與顏色通道數:m,n,c
如果顏色通道數c>1,則將彩色圖像轉化爲灰度圖rgb2gray
初始化輸出矩陣G
對於F的每一行i(1到m-1)
對於F的每一列j(1到n-1)
根據以下公式,由F(i,j)、F(i+1,j)、F(i,j+1)、F(i+1,j+1)計算G(i,j)
顯示Roberts銳化圖像
顯示Roberts銳化併疊加原圖的結果圖像
實驗代碼
im = imread('.\im\Grayblur6.png');
imshow(im); title('原始圖像');
[row,col,k] = size(im);
if(k>1)
im = rgb2gray(im);
end
im = double(im);
G = zeros(row,col);
for i=2:row-1
for j=2:col-1
G(i,j) = abs(im(i+1,j+1)-im(i,j)) + abs(im(i+1,j)-im(i,j+1));
end
end
g = uint8(G);
figure; imshow(g); title('Roberts銳化併疊加原圖的結果圖像')
實驗結果
學如逆水行舟,不進則退