LocalHistogramEqualization

LocalHistogramEqualization (LHE)

Zbynek Vrastil에 의해 만들어진 LocalHistogramEqualization 프로세스는 그냥 보기 좋은 이미지를 대단한 이미지로 바꿔주는 강력한 프로세스입니다. 이 프로세스는 사용하기도 쉽고, 낮은 콘트라스트 영역의 가시성을 높여주는 기능을 합니다. 이 프로세스는 천체사진이 아닌 일반적인 사진처리에서 Local contrast를 향상시키는 테크닉을 떠오르게 합니다. 
LHE는 우리가 앞서 만든 S자 형태의 콘트라스트 커브와 마찬가지로 히스토그램을 분석해서 꼭지 부분은 조금 더 밝게 만들어주고 파인 부분(valley)는 더 낮춰주는 역할을 합니다. LHE는 세 가지 중요한 세팅이 있고 Real-Time Preview를 제공합니다. 

LHE의 작동원리



Kernel Radius

Kernel Radius는 프로세스가 히스토그램을 만들어 볼 때, 특정 픽셀(가장 밝은 부분)을 중심으로 얼마나 넓은 면적을 대상으로 삼을 것인지에 대한 설정입니다. 이 수치를 낮게 설정하면 더 강력한 효과를 얻을 수는 있지만 노이즈 발생과 별 주변의 ringing 효과가 심해집니다. 반대로 이 수치를 높게 설정하면 약한 효과를 얻게 되고 프로세싱에 따른 왜곡은 덜해집니다. 
일반적으로 작은 구조물(천체대상)에 대해서는 25~75정도를, 큰 대상에 대해서는 100정도를 설정합니다. 
아랫쪽에 Histogram Resolution (8-bit)과 Circular Kernel은 그대로 두셔도 됩니다. 
만약 콘트라스트 증대효과를 줘야하는 대상이 큰 대상과 작은 대상으로 섞여 있다면 이 프로세스를 각각 나눠 두 차례 해보는 것이 좋습니다. 

Contrast Limit

Contrast Limit는 보통 1.5~3.0사이로 세팅합니다. 이 수치에서 1.0은 "아무것도 바꾸지 않는다"는 뜻이고 2.0은 "현재에서 2배로"라는 뜻입니다. 여러분이 이 세팅을 이것저것 해보시면 통상 1.5 정도가 제일 낫다는 생각이 드실 것입니다. 

Amount

이 세팅은 원본 이미지와 프로세싱한 이미지를 어느정도 수준으로 섞는지에 대한 세팅입니다. 보통 아래의 설정으로 해보시면 너무 과장되지 않는 결과를 얻을 수 있습니다. 
  • 0.25 : 원본을 75% 비율로 섞는다는 뜻
  • 0.50 : 원본을 50% 비율로 섞는다는 뜻
  • 0.75 : 원본을 25% 비율로 섞는다는 뜻

프로세스와 관련된 참고사항 : Advanced Masking

전통적인 Histogram equalization algorithm과는 다르게 이 프로세스는 노이즈를 강화하는 경향이 없습니다. 하지만 그래도 배경하늘이나 신호가 약한 부분의 콘트라스트 증가를 억제하기 위해 마스크를 사용하는 것이 좋습니다. HDRMT에서와 같이 이미지 전 영역의 콘트라스트 증가는 크고 밝은 별에 부정적인 영향을 끼치기 때문입니다. 

RangeSelection

RangeSelection 프로세스를 엽니다. 그리고 Real-Time Preview를 켜세요.


위 그림과 같이 Lower Limit를 0.3정도 주면, 대상이 되는 은하가 다른 배경과 완전히 격리가 됩니다. 물론 이 설정은 다루는 이미지마다 다를 수 있으니 여러번 테스트해보셔야 합니다. 
그런데 우리는 별은 대상으로 삼고 싶지 않고 은하만 삼고 싶은데, 밝고 큰 별이 대상에 포함되어 있는 것을 볼 수 있습니다. 이건 나중에 문제가 될 수 있겠지요.

Fuzziness and Smoothness

Fuzziness가 마스크의 끝 부분이 솜털처럼 바뀌는 것이라고 한다면 Smoothness는 마스크의 끝부분을 뿌옇게 흐리게 만드는 효과입니다. 이 세팅을 조절해서 RangeSelection에서 포함되어버린 별을 없애봅니다. 

CloneStamp (CS)

그래픽 아트 프로그램을 사용하는 사용자분들은 특정 위치의 픽셀을 복사(clone)해서 다른 곳에 붙여넣는 클론 기능에 익숙하실 겁니다. CS 프로세스는 선형 데이타이든 비선형이든, 그리고 마스크이든 실제 이미지이든 어디든 사용할 수 있습니다. 천체사진에서 어두운 배경하늘은 가장 기본적인 샘플(복사할 대상)로 사용할 수 있으며 이것을 이용해 이미지의 밝은 아티팩트를 제거할 수 있습니다. 경우에 따라서는 보기에 좋은 별을 복사해서 문제가 되는 부분에 옮겨 넣을 수도 있습니다. 
LHE 프로세스 단계에서 CS는 종종 남은 별들을 제거할 때 사용합니다. 


  • 다음 그림과 같이 키보드의 컨트롤 키(Ctrl)을 누른채로 배경 하늘을 클릭합니다. 마우스의 버튼에서 손을 떼면 원래 클릭한 자리에는 하얀색 x가 표시되고 현재 마우스의 커서는 십자선으로 바뀌어 있습니다. 그리고 원래의 x표시와 마우스의 십자선이 가는 선으로 이어진 것을 확인하실 수 있습니다. 
  • 커서에 x 표시가 생기며 활성화 되어있다고 하더라도 언제든 프로세스 윈도우의 설정을 바꿀 수 있습니다. 만약 필요하다면 Radius 세팅을 조절해서 커서의 크기를 바꿀 수 있습니다. 
    고정된 x 표시가 나타나고 현재 활성화된 마우스가 십자선으로 변한 상태에서 드래그를 해봅니다. 그러면 x 표시와 십자선이 동시에 움직이며 클로닝이 된 영역이 회색 박스로 나타납니다.
  • 이 테크닉을 이용해 원하는 별의 마스크를 모두 지웠다면 마우스에서 손을 땝니다. 이 상태로 마우스를 움직이면 종전의 x 표시와 십자선이 연결된 채로 움직입니다. 
    만약 다른 부분을 클로닝 대상으로 삼아 다른 부위를 지우고 싶다면 다시 컨트롤 버튼을 누른채 원하는 부분을 클릭하면 됩니다.
  • Softness 슬라이더는 우리가 클로닝을 할 때 너무 급격한 변화를 줄이기 위해 사용합니다. 통상 0.5정도면 충분합니다. 
  • Opacity 슬라이더는 클로닝하는 이미지와 기존의 이미지를 어느 수준으로 섞는지에 대한 세팅입니다. 최대값인 1.0은 클론 이미지로 100% 덮어 버린다는 것입니다. 0.5 정도로 기존의 픽셀과 섞어주면 자연스럽게 됩니다. 
  • 우측의 동그란 이미지 아래에 화살표를 이용하거나 Ctrl + Z (되돌리기), 그리고 Ctrl +Y (다시 하기)를 이용하면 원하는 만큼 덮어쓰고 지우고를 반복할 수 있습니다. 아래의 버튼을 테스트 삼아 여러번 만져보는 것이 좋습니다. 



  • 만약 클론 작업중에 일정부분을 삭제하고 십다면 빨간색 X표를 누르면 됩니다.
    이 프로세스 윈도우를 잘 보시면 왼쪽에 'Local History' 라는 항목이 있는데 빨간색 X를 누르면 이 히스토리 하나가 통째로 사라집니다. 기억하실 것은 일단 히스토리를 지워버리면 다시 되돌릴 수 없습니다. 
  • 만족할만큼 처리가 되었다면 프로세스 윈도우의 제일 아랫부분 녹색 체크버튼을 누르시면 됩니다. 만약 과정 전체를 취소하고 싶다면 그 옆에 작은 엑스 버튼을 누르시면 됩니다. 
  • 만약 방금 한 작업을 다른 이미지에서도 하고 싶다면 New Instance 를 하나 만들어 쓰시면 됩니다. 이럴 일이 얼마나 있겠냐 생각하시겠지만 다른 선형 마스터 파일에 있는 동일한 위치의 대상을 처리할 때 유용합니다. 
이제 모든 마스크 작업이 끝났으면 마스크를 이용해 LHE 프로세스를 끝마칩니다. 
주의하실 것은, LHE프로세스는 작은 규모에서 콘트라스트를 올리기 위해 이미지에 있는 큰 대상의 채도를 떨어뜨릴 수 있습니다(Desaturation). 이 작업후의 문제는 Color saturation과 관련된 프로세스에서 쉽게 복원할 수 있습니다. 

참고사항 : 까다로운 케이스

우리가 LHE를 은하나 구상성단, 그리고 행성간 성운에 적용할때는 큰 어려움 없이 배경과 대상을 분리해 처리할 수 있습니다. 왜냐하면 앞서 설명한 방법들로도 손쉽게 별과 원하는 대상을 분리할 수 있기 때문입니다. 하지만 넓게 퍼져있는 성운에 마스크를 씌우는 것은 사방에 별이 포함되어 있어 완전히 분리해 처리하는 것이 상당히 어려운 일입니다. 다시 RangeSelection으로 돌아가 보겠습니다. 이 문제를 해결하는 손쉬운 팁이 하나 있습니다. 


위 그림에서 보여주듯이 Upper Limit 슬라이더를 사용하시면 됩니다. Upper Limit 슬라이더를 기본값 1.0에서 조금씩 낮춥니다. 인내심을 갖고 네 가지 슬라이더를 조금씩 사용해서 성운의 강한 신호를 남기고 대부분의 별을 제거해 줍니다. 나중에 이렇게 만들어진 RangeSelection마스크와 Star mask를 합치는 방법을 알려드리겠습니다. 


댓글