행성 이미지는 보통 동영상으로 촬영한 후 그중에서 괜찮은 이미지들을 추려서 합성하여 완성합니다.
여러 이미지를 합성(Stack) 하는 이유는 노이즈를 줄이기 위함인데요. 합성하는 이미지의 매수가 많을수록 노이즈가 적은 이미지를 얻을 수 있습니다.
2014년 7월 4일에 촬영했던 토성을 예로 들면, 총 1326프레임 중에서 이미지 품질이 좋은 531프레임만 골라서 합성을 하여 아래와 같은 이미지를 얻었습니다.
촬영된 모든 프레임을 사용하면 정말 좋겠지만 품질이 떨어지는 이미지는 아무리 많은 양을 합성한다고 해도 결과가 절대로 좋아지지 않습니다(原版不変: 원판불변). 그래서 저는 보통 품질(Quality)이 60% 이상 되는 이미지만 사용해서 합성을 합니다. 이런 이미지 합성 작업은 수동으로 하나하나 골라서 직접 합성하는 건 아니고요. 이런 일을 자동으로 해주는 프로그램들(Registax, AutoStakkert)이 있습니다.
그냥 그러려니 하고 잘 만들어진 무료 공개 프로그램을 이용해서 지금껏 잘 사용하고 있었는데요...
또 궁금증이 밀려옵니다...
동영상을 구성하는 수많은 프레임 중에서 어떻게 좋은 이미지를 선별하는 걸까요?
즉, 이미지의 품질은 어떤 기준으로 결정하는 걸까요?
예를 들어 다음과 같은 이미지들이 있습니다.
예전에 Auto Focus 프로그램을 만들면서 테스트 용으로 초점을 여러 단계로 구분해서 찍은 목성 이미지들인데요. 이 세 개의 이미지들 중에서 품질이 가장 좋은 이미지를 하나 골라 보라고 한다면 심성이 곧은 사람이라면 누구라도 금방 3번이라고 할 겁니다. 사실 3번 이미지도 그렇게 좋은 품질은 아니지만 나머지 2개 이미지들에 비해 더 좋은 품질로 보이니까요.
여기서 중요한 포인트가 있는데요. 왜 3번이 품질이 가장 좋다고 생각하는 걸까요?
다른 이미지들에 비해 초점이 더 잘 맞아 보이기 때문입니다.
다르게 표현하면 더 밝고 선명한 이미지이기 때문입니다.
실제로 밝기(Brightness)와 선명함(Sharpness)은 초점을 확인할 때 실제로 사용되는 중요한 요소들입니다. 그 외에 노이즈(Noise), 톤(Tone), 콘트라스트(Contrast) 등도 Image quality를 결정하는 중요한 요소지만 행성을 고배율로 확대해서 촬영하는 경우만 생각한다면 촬영된 영상은 대부분 어둡고, 흐리고, 노이즈가 심한 경우가 많기 때문에 다른 요소들은 고려하지 않아도 괜찮다고 생각합니다.
참고로 국내외 아마추어 천문인들이 많이 사용하는 AutoStakkert2의 프레임 화면을 보면...
초록색 사각형으로 표시한 부분처럼 각 프레임마다 quality와 brightness를 계산하여 보여 줍니다. 단정할 수는 없지만 AutoStakktert2의 제작자도 이 두 항목으로 이미지의 Quality를 판단한다고 볼 수 있겠습니다. 같은 Quality 값을 갖는 이미지라면 더 밝은 이미지가 더 좋은 품질이라고 판단할 수 있는 거죠.
이렇듯 Image Quality는 품질이 높은 이미지를 선택할 수 있는 기준을 제시하며 합성에서도 매우 중요하게 사용됩니다.
그런데 재밌는 것은 동영상의 프레임별로 계산된 Image Quality 값을 그래프로 적용해 보면 더 흥미롭습니다. 상이 변화되는 과정을 한눈에 볼 수 있기 때문에 촬영 당시 시상의 변화를 그래프를 통해서 추적할 수가 있습니다. 시간대별로 시시각각 변화는 상황을 확인할 수 있기 때문에 Image quality graph는 관측 자료로서도 가치가 있다고 생각합니다.
AutoStakkert2에서도 이 Quality Graph를 보여줍니다만 아쉽게도 별도로 저장하거나 하는 기능은 없습니다.
위의 이미지는 AutoStakkert2로 분석한 7월 4일 토성 동영상의 Quality graph입니다. 이렇게 그래프까지는 아니더라도 프레임 별로 Quality 값을 파일로 저장해 주면 좋았을 텐데요... 그럼 참 요긴했을 텐데 싶습니다.
제작한 분에게 기능을 추가해 달라고 건의해 볼까 하다가... 언제 추가될지도 모르고...
그래서 그냥 직접 만들었습니다... 목마른 사람이 우물을 파는 거죠...
그렇게 만든 프로그램으로 7월 4일에 촬영한 토성 동영상을 분석한 Quality Graph는 다음과 같습니다.
프레임별 이미지 품질(Image quality)을 백분율로 변환한 그래프인데요. 회색 그래프는 프레임별 이미지 품질을 나타냅니다. 또, 검은색 그래프는 초당 변화율을 보여주고 마지막으로 붉은색 그래프는 이미지 품질의 분포를 나타냅니다.
계산 방식이 같을 수는 없겠지만 계산된 결과는 AutoStakkert2로 분석한 그래프와 큰 차이는 없어 보입니다.
이 그래프만 봐도 품질이 좋은 프레임이 얼마 안 된다는 걸 알 수 있습니다. 그리고 초당 변화율을 보면 촬영 환경의 변화를 초 단위로 확인할 수도 있고요. 이런 촬영 데이터가 축적되면 Pickering's scale처럼 시상의 측정에도 활용할 수 있을 거라고 생각합니다.
[2015년 2월 2일 추가]
촬영된 행성 동영상의 프레임을 분석해서 Image quality graph를 그려주는 프로그램을 공개합니다.
개인적으로 사용하기 위해 제작된 프로그램이지만 필요한 분들이 계시다면 아래의 내용을 숙지하시고 다운로드하여 사용하시면 됩니다.
간단한 프로그램이라 특별히 주의할 내용은 없습니다만 혼자 사용하기 위해 만들었던 프로그램을 공개하는 만큼 다양한 환경에서 테스트되지 않아 정상 동작을 하지 않을 수 있습니다. 이 프로그램은 어떠한 악성코드나 컴퓨터 바이러스를 포함하고 있지 않습니다만, 이 프로그램을 사용하면서 발생하는 문제에 대한 책임은 사용을 결정한 개인에게 있습니다.
(프로그램 사용하고 OS가 이상해졌다고 제발 괴롭히지 말아주세요... 원래 이상했던 거예요... ㅠㅠ)
위의 내용에 동의하신 분은 아래의 압축파일을 다운로드하세요.
[사용 방법]
1. 압축 프로그램을 다운로드 한 후 원하는 곳에 압축을 해제합니다.
2. 해제된 폴더로 이동하여 ImageQualityGraph.exe 파일을 실행합니다.
3. 실행하면 위와 같은 모습의 프로그램이 실행됩니다.
4. Open / Quality Check 버튼을 클릭하세요.
5. 동영상을 선택하는 화면이 나오면 분석을 원하는 동영상을 선택하고 확인 버튼을 누릅니다.
6. 자동으로 분석을 시작하며 진행 상황은 화면 아래의 프로그레스 바(Progress bar)를 통해 확인할 수 있습니다. (동영상의 프레임이 많으면 시간이 오래 걸릴 수 있습니다.)
7. 분석이 완료되면 아래의 화면 처럼 결과와 그래프를 표시합니다.
(그래프가 의미하는 내용은 위에 포스팅된 내용을 참고하세요.)
그래프 외에 로그로 표시되는 내용은 프레임 별로 Quality 값을 표시하며, 가장 좋은 Best frame과 평균 Quality 값 그리고 Quality가 50% 이상인 frame이 전체의 몇 퍼센트(%) 인지 표시합니다.
8. 분석이 완료된 그래프를 이미지(PNG 파일)로 저장하려면 그래프를 마우스 오른쪽 버튼으로 클릭합니다.
위 이미지 처럼 Save to Image라는 메뉴가 나오면 메뉴를 클릭합니다.
9. 원하는 위치에 파일을 저장하면 됩니다.
프로그램을 사용하면서 발생하는 버그는 댓글로 알려주세요. 하지만 건의사항은 받지 않습니다. 추가로 개발할 계획이 없거든요...
(개인적으로 사용할 이미지 합성 프로그램을 제작하면서 그 일부를 떼어 별도의 기능으로 만들어 놓은 프로그램일 뿐이라 더 이상 손을 댈 계획은 없습니다.)
하지만 필요한 분이 계시다면 유용하게 사용되었으면 좋겠습니다.