반응형

Image Blurring & Sharpening

Imaeg Sharpening은, 흐릿한 이미지를 보다 선명한 이미지로 개선해 주는

영상처리 기술이다.

반대로 Image Blurring은, 마치 안개라도 낀 것처럼 

영상을 흐릿하게 해 주는 기술이다.

구현 방법은 여러가지가 있겠지만,

그중의 하나가, GaussianBlur를 이용하는 방법이다.

OpenCV 함수를 이용하여 다음과 같이 구현할 수 있다.


1. Image Blurring

void imgSharpening(cv::Mat& img, float sigma ) 

{

    cv::Mat tmp;

    cv::GaussianBlur(img, img, cv::Size(0,0), sigma );

※ sigma를 통해, 흐려지는 정도를 조절할 수 있다.


2. Image Sharpening

void imgSharpening(cv::Mat& img, float sigma

{

    cv::Mat tmp;

    cv::GaussianBlur(img, tmp, cv::Size(0,0), sigma );

    cv::addWeighted(img, 1.5, tmp, -0.5, 0, img);

}

※ 1. 이미지가 흐린 정도에 따라, sigma 값을 조절한다.

※ 2. 1.5, -0.5등의 계수 역시 이미지의 흐린 정도에 맞게 조절한다..


위의 두가지 예에서 알 수 있듯이, Image Sharpening은 

선명한 이미지에 안개 등과 같은 흐린 레이어가 덧붙여졌다고 가정하고

덧붙여진 레이어를 제거하는 방법이다.


위 소스들을 테스트해 보면,

이미 흐려진 이미지를 원상태로 깨끗하게 되돌리기에는 한계가 있지만,

계수 조정을 통해 어느 정도 윤곽선이 뚜렷해 지는 것을 확인할 수 있다.


그리고 다음은, Image Deblurring과 관련된 사이트들이다.

참고 사이트


반응형

'영상처리 프로젝트' 카테고리의 다른 글

HD 및 HDR의 이해  (0) 2015.12.04
OpenCV 속도 개선 방법  (2) 2015.12.04
2차 개발 계획  (0) 2015.07.22
1차 개선 완료  (0) 2015.07.21
안개보정 개선  (4) 2015.07.21

+ Recent posts