이미지 노이즈 씌우기
1. Pepper and salt noise

|
origin = imread('Matlab_Image/lenna.jpg');
PSnoise = imnoise(origin,'salt & pepper');
imshow(PSnoise); |
cs |
2. Gaussian noise

|
origin = imread('Matlab_Image/lenna.jpg');
Gnoise = imnoise(origin,'gaussian');
imshow(Gnoise); |
cs |
노이즈 이미지 복원
1. Restore Pepper and salt noise

|
R_PSnoise = medfilt2(PSnoise);
imshow(R_PSnoise); |
cs |
2. Restore Gaussian noise

|
s = size(origin);
t_gq10 = zeros(s(1),s(2),10);
for i=1:10
t_ga10(:,:,i)=imnoise(origin,'gaussian');
end
t_ga10_av=mean(t_ga10,3);
t_ga10_av=uint8(t_ga10_av);
imshow(t_ga10_av); |
cs |
결과
1. 복원 이미지와 원본 이미지 비교
1) Pepper and salt noise

|
subplot(1,2,1);
imshow(origin);
title('Origin');
subplot(1,2,2);
imshow(R_HSnoise);
title('Restore Peper&Salt noise'); |
cs |
2) Gaussian noise

|
subplot(1,2,1);
imshow(origin);
title('Origin');
subplot(1,2,2);
imshow(t_ga10_av);
title('Restore Gaussian noise'); |
cs |
2. 원본 이미지와의 PSNR 계산
>직접 작성한 코드와 Matlab 라이브러리 결과 비교
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
function PSNR = MY_PSNR(origin,second)
origin = double(origin);
second = double(second);
m=length(origin(1,:)); %세로 길이
n=length(origin(:,1)); %가로 길이
temp = 0;
for i=1:m
for j=1:n
temp = temp + (origin(i,j) - second(i,j))^2;
end
end
MSE = temp/(m*n);
PSNR = 20*log10(255/sqrt(MSE));
end
|
cs |
1) 작성한 PSNR 계산 함수2) Matlab 라이브러리와 결과 비교 Pepper&Salt noise
|
MYPSNR = MY_PSNR(origin,PSnoise) %내가 만든 함수
LIBPSNR = psnr(origin,PSnoise) %매트랩 라이브러리 함수 |
cs |

3) Matlab 라이브러리와 결과 비교 Gaussian noise
|
MYPSNR = MY_PSNR(origin,t_ga10_av) %내가 만든 함수
LIBPSNR = psnr(origin,t_ga10_av) %매트랩 라이브러리 함수 |
cs |

엣지 검출 알고리즘
1. 소벨 엣지(직접 구현)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
%% 소벨 엣지 구현
clear; clc;
origin = imread('Matlab_Image/house.jpg');
SBMx = [-1 0 1;-2 0 2;-1 0 1]; %수직
SBMy = [-1 -2 -1;0 0 0;1 2 1]; %수평
%h = fspecial('gaussian',[5 5]);
originA = imgaussfilt(origin);
SBIv = abs(filter2(SBMx,originA));
SBIh = abs(filter2(SBMy,originA));
SBIS = SBIv + SBIh;
imshow(SBIS/255>0.7); %threshold |
cs |
2. 소벨 엣지(Matlab 라이브러리)
|
figure,imshow(edge(origin,'sobel')); |
cs |
3. 케니 엣지(Matlab 라이브러리)
|
figure, imshow(edge(origin,'canny')); |
cs |
결과
1. 결과 이미지 비교


2. 시간 비교

