이 프로그램은 제가 오픈소스 프로젝트 중 하나로 가져 가고 있는 공개 프로그램 입니다. 단, GPL3 라이센스를 가지고 있으므로 상용으로 소스를 일절 사용할수 없습니다. 물론 어디서든 어떤 개인이던지 빌드된 바이너리를 사용하는 것은 문제가 되지 않지만, 재배포를 할수는 없습니다.
이 프로그램은 일단 전문가가 아니더라도 아무 사진이나 화사한 사진을 만들수 있도록 하자는 취지로 만들어진 것이며, 다음 알고리즘을 기반으로 만들어 졌습니다.
- Drago's log mapping
- Reinhard's HDR
- CLAHE
위 알고리즘은 대부분의 오픈소스 이미지 처리 부분에서 많이들 사용하고 있으나, 은근히 공개프로그램 등에서는 사용되지 않는 것들 입니다. 그래서 간단히 윈도우나 맥(현재 개발이 끝나감) 에서 고가의 프로그램 없이 이미지를 화사하고 밝은 느낌으로 만들어 주도록 도와 주는 프로그램을 만들게 되었습니다.
다운로드는 제 오픈소스 페이지에서 받으실 수 있으며, 능력이 되시는 분들은 개발에 참여 하실수 있습니다만, 개인 repo. 로 복제는 불가능 합니다.
빌드 된 이미지 다운로드
현재 글을 쓰는 시점에서는 여러 바이너리가 존재 하며, 이중 가장 최신버젼 중 다음 두가지 중 하나를 받아서 사용하시면 됩니다.
파일 이름에 avx 가 들어가는 것은 CPU 에 AVX 명령어가 수행이 되는 Core i 씨리즈 3세대 이후의 대부분 CPU 에서 모두 사용할수 있으며, 이 외에 avx 가 없는 파일은 SSE3 를 지원하는 모든 CPU 에서 사용할수 있으며, 이는 Pentium 세대 이후에서 모두 가능합니다.
다만, 이 프로그램을 수행하려면 64bit 명령어와, OpenMP 관련 기능이 지원되는 최신 WindowsNT 커널에서만 구동이 되며, 이는 Windows Vista 이후에서 가능한 것으로 알고 있기때문에 일부 구 OS 에서는 사용이 불가능 합니다.
실행 방법
이 프로그램은 단독 실행파일 하나만으로 구동이 되는 형태로 만들어 졌습니다. 그런 부분에서 사용되는 OS 에 어떠한 파일을 만들거나, 레지스트리에 Windows 가 자동으로 만드는 것이 아닌 프로그램이 직접 만드는 것이 없는 구조 입니다. 그래서 아쉽게도 사용하던 기능이 저장되어 있거나 하는 것이 없는 것은 사용하기 전에 먼저 인지해 주서야 합니다.
실행은 위에서 받은 파일을 반디집이나 7zip 등의 프로그램으로 압축을 해제 하신다음 다음 실행파일중 아무것이나 구동하면 됩니다.
실행을 하면 비어있는 작은 창이 하나 뜨는데, 이 창 안에 보이는 것이 모든 기능의 전부라 보시면 됩니다.
이 프로그램은 이미지를 보정하는 filter 3가지와, 이에 따라 2~4개의 파라미터 를 조절할수 있으며, 파라미터 값은 수동으로 조정할수 있지만, 기본으로 정해 놓은 값 만으로도 충분히 좋은 사진을 얻을수 있도록 만들어져 있습니다.
사진은 종이에 + 가 붙은 것으로 직접 읽어 올수도 있지만, 간단히 탐색기에서 그냥 이미지를 끌어다 놓으면 됩니다. 이때 지원하는 이미지 종류는 JPG, BMP, BMP 이렇게 3가지만 지원하며 .. 아쉽게도 PNG 나 JPG 에 있는 메타정보는 읽어 오지 않으므로 가끔 사진이 돌아가 있는 경우가 있을 수 있습니다.
만약 사진이 돌아가 있는 경우는 90도 회전을 할수 있는 버튼이나, 이미지상 마우스 오른쪽 버튼을 눌러 화면 회전 옵션을 사용할 수 있습니다.
사진을 기본적으로 읽어 오거나, 방향이 수정 된 다음엔, 이미지에 적용 해 볼 filter 를 선택 할수 있는데, 각기 서로 다른 특징이 있으므로 직접 선택하고 체크 표시 버튼을 눌러 적용을 해 보면 차이를 알수 있습니다.
이미지를 볼때 좌측 아래에 표시되는 각 색상정보 (RGB) 의 차이를 확인 해 보는 것도 좋은 부분이나, 아쉽게도 백색기준 조정이나, 밝기, 감마 등의 조절은 이 프로그램에서 배제 되어 있습니다. 사실 이런 기능은 다른 프로그램을 사용하는 것이 좋으며, 이를 위해 클립보드에 복제 하는 기능도 들어 있습니다.
중요한 점은 이미지에 새로운 값을 적용 해 보려면 항상 다음 체크 버튼을 눌러 적용해 주셔야 합니다.
새로운 이미지가 적용 되는 도중엔 사용하는 filter 와 이미지의 크기에 따라 적용시간이 다르며, 대부분의 14MP 정도 이미지는 Penium957(Mobile CPU) 기준으로 5~8초 사이 정도 입니다. 빠른 CPU 를 사용하고, Core수가 많을수록 더 빠르게 처리됩니다.
이미지 처리가 끝나면 위 이미지처럼 변경된 이미지를 바로 확인이 가능하며, 이때 저장 또는 클립보드로 복사 하거나 할수 있습니다. 클립보드로 복사는 Ctrl+C ( Mac OS X는 command + C 로도 가능 ) 로 복사 할수 있습니다만, 대부분의 OS 에서 클립보드 크기가 제한되어 있으므로, 가로나 세로 긴 축을 기준으로 2100 정도의 이미지로 제한된 복사가 됩니다. 이때 내부적으로 BiLinear 로 크기를 줄여서 복제 하므로 최소한의 이미지 품질유지를 하도록 설계 되었습니다.
Windows 에 한해 클립보드 복사 후 뜨는 팝업은 3초후 자동으로 닫히므로, 일일히 확인 버튼을 누를 필요는 없도록 만들어 졌습니다. 팝업이 뜨면 정상적으로 클립보드로 복제 되었다는걸 확인하는 정도로 인지하면 됩니다만, Mac OS X 에서는 이 기능이 미구현 되었습니다.
복제된 이미지는 윈도우 내장 프로그램인 그림판 에 바로 붙여 넣어서 편집을 추가로 하거나, 다른 이미지 수정 프로그램을 사용하여 사용도 가능 합니다.
또한 저장은 PNG 로만 되며, Compression level 8 의 LZ 압축을 하도록 되어 14MP 이미지 기준 대부분 8~9MB 정도의 크기로 저장됩니다. JPG 는 향상된 품질의 이미지를 다시 손상하는 구조다 보니 아직 기능에 넣지는 않았으나, 추후 필요에 따라 PNG 나 JPG 중 골라서 저장할수 있도록 만들 예정 입니다.
고가의 편집 프로그램 없이 이쁘게 보이는 밝은 사진을 만들고 싶으시다면 MIOH 를 많이 사용해 주시길 바라며, 발견되는 버그나 추가 사항 등은 다음 URL 에서 작성해 주시면 추후 기능구현이나 버그 제거 등에 활용하도록 하겠습니다.
이 오픈 소스는 다음 라이브러리와 컴파일러를 사용하고 있습니다.
- fltk-1.3.4-2-ts
- fm_imgtk
- MinGW-W64 7.x 64bit
- llvm-gcc (Apple Mac OS X, Xcode)