영상처리(매트랩 코드 포함) Bilinear Interpolation (쌍선형 보간법),Edge Detection (Sobel operator)
- 최초 등록일
- 2020.12.14
- 최종 저작일
- 2019.04
- 12페이지/ 한컴오피스
- 가격 2,000원
* 본 문서(hwp)가 작성된 한글 프로그램 버전보다 낮은 한글 프로그램에서 열람할 경우 문서가 올바르게 표시되지 않을 수 있습니다.
이 경우에는 최신패치가 되어 있는 2010 이상 버전이나 한글뷰어에서 확인해 주시기 바랍니다.
소개글
과제로 냈었습니다.
도움이 되었음 좋겠습니다.
목차
1. Bilinear Interpolation (쌍선형 보간법)
1-1) Bilinear Interpolation 이란?
1-2) 나의 코드
1-3) 코드 설명
1-4) 결과
2. Edge Detection (Sobel operator)
2-1) Edge Detection (Sobel operator) 이란?
2-2) 나의 코드
2-3) 코드 설명
2-4) 결과
본문내용
1-1) Bilinear Interpolation 이란?
Interpolation이란 알려진 값 사이(중간)에 위치한 값을 추정하는 것을 말한다. 대표적인 예로 어떤 사람이 20살일 떄 키와 40살일 때 키를 보고 30살에서의 키를 추측하는 것은 Interpolation이다.
Interpolation을 2D로 확장한 Bilinear Interpolation은 우리말로 쌍선형 보간법, 또는 이중선형 보간법이라고 한다. Interpolation을 바탕으로 수행하며 확대 후 출력값을 모르는 좌표는 인접한 픽셀의 값들로 거리비를 이용하여 계산한다.
코드에서 scale은 확대비율을 뜻한다. 예로 scale이 2면 영상이 2배 확장되는 것이다.
interpolation 하는 순서를 수평,수직 으로 하느냐, 수직,수평으로 하느냐에 따라 값이 달라지지 않는다고 생각한다. 4x4 행렬의 경우 순서를 바꾸어 (2,2)값을 계산해 보겠다.
<중 략>
1-2) 나의 코드
close all; clear all; clc;
im = imread('Lenna.png');
im = im2double(im);
figure; imshow(im);
scale = 2;
result = bilinearInterpolation(im, scale);
imwrite(result, 'result_bilinearInterpolation.png');
figure; imshow(result);
function out=bilinearInterpolation(im,scale)
channel = size(im,3);
b=zeros(size(im,1)*scale,size(im,2)*scale,0);
for i=1:size(im,1)
for j=1:size(im,2)
for k=1:channel
I=scale*i-(scale-1);
J=scale*j-(scale-1);
b(I,J,k) = im(i,j,k);
참고 자료
없음