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과 관련된 사이트들이다.
참고 사이트