"Open Source" 검색결과 (16)
  • 보케 효과를 만들어 보기 #2 - 성능향상

    이 글은 이전 "보케 효과를 만들어 보기 #1" 에 이어지는 글 입니다. 혹시 이 글을 이전 글 보다 먼저 보신 분은 먼저 앞선 글을 읽고 오시면 더 이해 하시기 편할 것으로 예상 됩니다. 향상된 보케(빛망울) 효과 이전 글 에 소개된 보케효과 알고리즘은 0.1 초판으로서 현재 마지막 0.1.7.31 버젼에 비해 많은 것들이 모자란 버젼 이었습니다만, 그간 짬짬히 여러 문제를 수정 하고 성능을 비약적으로 향상 하여 근대의 다중 코어 CPU ( x86 및 ARM 계열 모두 해당 됨 ) 들에서 가장 효과적인 구동을 하도록 발전 하였습니다. 그 중 몇가지 수정 사항은 먼저, 효과를 적용하면서 발생하던 메모리 누수 ( 제 실수 였습니다만 ) 를 제거 하고, OpenMP 의 효과적인 구동으로 각 CPU threa..

    내가 작업한 것들/소프트웨어
    2018. 9. 29. 00:05
  • 보케 효과를 만들어 보기 #1

    심도가 낮은 렌즈와, 큰 크기의 촬상면을 가진 DSLR 같은 종류가 아니면 찍기 힘든 사진이 있다면 아마 배경이 뭉개진 이미지들이 아닐까 합니다만, 사실 단순이 Gaussian blur 만 줘서는 큰 렌즈의 빛의 굴절로 인해 생기는 일명 Bokeh 라는 형태를 만들어 내기가 쉽지는 않습니다. 그래서 어떻게 Bokeh 를 만들어 낼까? 란 고민을 하다 scratchpixel.com 에 한 페이지를 보게 되었습니다. circualr shifting 이라는 형태를 가지고 빛이 렌즈와 조리개를 통해 촬상면에 맺히는 형태를 흉내 낸 시뮬레이션 정도 이긴 합니다만 꽤 그럴싸한 결과물을 얻을 수 있었습니다. 원래 소스는 조금 복잡한 처리를 해야 하나, 제가 이를 조금 수정 하여 다음 github 위치에 소스를 공개하..

    내가 작업한 것들/소프트웨어
    2018. 9. 15. 19:49
  • libsrcnn (Super-Resolution Neural Networks) 맥에서 테스트

    libsrcnn 이란? 참조1, 참조2 MacOSX 에서의 테스트 이번 테스트는 MacOSX 에서 기본 LLVM-GCC 를 사용하여 zsh로 성능 테스트를 해 보았습니다. 일단 MacOSX 에서는 기본적으로 HPC-GCC 가 아니고는 OpenMP 를 통한 CPU 가속을 할 수 없기 때문에, 기본적인 LLVM-GCC 의 Optimization 에 제한적으로 기능을 제한 해야 합니다.테스트 한 MacOSX모델명: MacBook Pro모델 식별자: MacBookPro12,1프로세서 이름: Intel Core i7프로세서 속도: 3.1 GHz총 코어 개수: 2L2 캐시(코어당): 256 KBL3 캐시: 4 MB메모리: 16 GB 테스트 이미지는 크기가 3:2 비율을 가지는 DSLR 로 촬영한 가로 2048px ..

    내가 작업한 것들/소프트웨어
    2018. 8. 24. 23:35
  • 고성능 신경망 Super-Resolution Image library - libsrcnn 소개

    libsrcnn 은? libsrcnn 은 POSIX 를 포함한 Windows 에서도 DLL 로 사용이 가능 하도록 제공되는 오픈소스 라이브러리로서, Super-Resolution Imaging 을 OpenCV 와 같은 별도의 라이브러리를 사용하지 않고도 쓸 수 있도록 설계되고 만들어진 신경망이 적용된 고성능 엔진 입니다. 초창기는 ShuWang 의 오픈소스로 부터 시작하여, OpenCV 에서 발생하는 여러 낮은 성능과, Multi-thread 를 이용하지 못하는 단점등을 모두 보완한 프로젝트로서, 현존 이미지 복호처리 중 가장 띄어난 결과를 보여 주는 알고리즘이라 하겠습니다. 본 라이브러리는 ShuWang 의 오픈소스로 부터 기반을 하여 GCC, LLVM, CLANG 등으로 POSIX 에서 문제 없이 구..

    내가 작업한 것들/소프트웨어
    2018. 8. 11. 15:19
  • 신경망 Super-Resolution Imaging 오픈 소스 (libsrcnn) 공개

    이전에 Super-Resolution Imaging 관련으로 관심을 가졌다가, 오래전에 공개 되었던 한 홍콩의 대학쪽에서 공개된 논문과 소스코드를 이번에 손을 보게 되었습니다. 이전에 fl_imgtk 에 Lanczos3 까지 초 고속으로 구현을 해 보았던지라, 이번 Super-Resolution (이하 SR) 은 어렵지 않게 구현을 할 수 있을 거로 추측을 해 봤습니다만, 결론적으로 대단히 쉽지 않은 부분이 많았습니다. 특히 지속적으로 32 에서 64번씩 반복되는 커널 매트릭스 구조는 도저히 속도를 개선 하는데 쉽지 않은 부분이었습니다만, 그럼에도 만들어진 영상의 품질은 아마 현존하는 이미지 리사이즈 알고리즘 중에서는 최고봉이 아닐까 합니다. 아무래도 Lanczos3 와 같은 리사이즈 엔진은 인간의 눈으..

    내가 작업한 것들/소프트웨어
    2018. 8. 8. 22:49
  • 시진을 그냥 이쁘고 밝게 : MIOH (Make Image O' HDR)

    이 프로그램은 제가 오픈소스 프로젝트 중 하나로 가져 가고 있는 공개 프로그램 입니다. 단, GPL3 라이센스를 가지고 있으므로 상용으로 소스를 일절 사용할수 없습니다. 물론 어디서든 어떤 개인이던지 빌드된 바이너리를 사용하는 것은 문제가 되지 않지만, 재배포를 할수는 없습니다. 이 프로그램은 일단 전문가가 아니더라도 아무 사진이나 화사한 사진을 만들수 있도록 하자는 취지로 만들어진 것이며, 다음 알고리즘을 기반으로 만들어 졌습니다.Drago's log mappingReinhard's HDRCLAHE 위 알고리즘은 대부분의 오픈소스 이미지 처리 부분에서 많이들 사용하고 있으나, 은근히 공개프로그램 등에서는 사용되지 않는 것들 입니다. 그래서 간단히 윈도우나 맥(현재 개발이 끝나감) 에서 고가의 프로그램 ..

    내가 작업한 것들/소프트웨어
    2017. 11. 4. 23:06
  • Windows 에서 BIOS dump 및 Parse (해석) 하기 소스코드

    이 프로그램은 작년에 만들었던 것이나, 소스를 오픈 하고 있지 않다는걸 늦게 알아서 지금에서야 공개 하게 되었습니다. 공개된 위치는 다음과 같습니다. https://bitbucket.org/rageworx/rk_bios_dump 소스코드 자체는 MIT License 를 따르며, 내부에 사용된 코드들 중 WinBIOS info (winbiosinfo.h/cpp) 는 BIOS 규격을 공표하는 DMTF / DSP0132 ( 2011-01-26 ) version 2.7.1 의 System Management BIOS (SMBIOS) Reference Specification 문서를 참조로 개발 중 이었던 코드 입니다. 대부분의 표준 SMBIOS 를 parse 할 수 있으나, 일부 Phoenix 사 BIOS 들은..

    Developement/C/C++
    2017. 10. 17. 11:36
  • IDA 를 쓸 수 없다면, x64dbg !

    회사에서나, 집에서나 컴파일러에서 디버깅을 다 했다고 생각 했는데, 막상 다른 환경으로 돌려 보거나 하면 기대하지 못한 오류를 겪게 되는 경우가 있습니다. ( 예를 들어 흔히 보는 0xCxxxxxxx .. exception fault ? ) 그런 경우 원인을 찾아 내기 위해 별도의 독립형 디버깅 프로그램을 사용해야 하는 경우가 있는데, 저의 경우는 WinDBG 를 사용해 왔었습니다. 하지만 이 WinDBG 의 경우 M$ 에서 이에 대한 지원을 끊은 상태이기 때문에 앞으로 계속 사용이 어려울 뿐더러, 이젠 구하기도 어렵다는 단점이 있습니다. 이를 해결 하기 위해서는 고성능 Debugger 인 IDA 같은 것을 쓸 수도 있겠지만, 개인이 이런 비싼 디버거를 불법적인 방법을 통하지 않고 쓰기엔 부담이 크다고 ..

    사용기 및 분석/소프트웨어
    2017. 9. 7. 13:53
  • Mac OS X 용 Medical RAW Viewer 0.7.8.221

    MacOS X 64bit 용 Medical Raw Viewer 0.7.8.221 을 현재 다음 위치에서 다운로드 받을 수 있도록 빌드 해 두었습니다. 이 프로그램은 Open source 로 개발 되고 있으며, 일부는 외부에서 만들어진 Open source 를 기반으로 하고 있습니다만, 이 또한 모두 Mac OS X 에서 빌드 될 수 있도록 고안되고 만들어 졌습니다. 단, Open source 자체는 모두 XCode 에서 개발 된 것이 아니라, llvm-gcc 와 Makefile 을 통해서 빌드 되도록 만들어 져 있으므로, XCode 외엔 사용을 못 하는 분들에겐 어려운 부분일 수 있습니다. Medical RAW viewer bitbucket web page : https://bitbucket.org/ra..

    Developement/C/C++
    2017. 7. 11. 11:00
  • FLTK 이미지 툴킷, fl_imgtk 공개

    그간 다른용도로(?) 쓰기 위해 만들어 오던 FLTK 용 이미지 처리 엔진의 일부인 fl_imgtk 를 공개 하였습니다. 소스는 github 에서 받으실 수 있으며, 누구나 제한없이 사용 가능한 MIT License 를 적용하고 있습니다. (물론 원래 소스들에 대해서는 각자 따로 기재 해야 하는 제한이 있을 수 있습니다) https://github.com/rageworx/fl_imgtk 소스코드는 gcc 나 llvm-gcc, 아니면 MinGW-W64 만 make 로 빌드 할 수 있도록 지원 합니다만, 별도로 프로젝트 파일을 만들어서 M$VC 등에서도 사용은 가능하나, 아마 FLTK 를 M$VC 에서는 쓰지 않을것으로 보입니다. QT 를 M$VC 에서 개발하지 않는 것처럼요. fl_imgtk 가 현재 지원..

    Developement/C/C++
    2017. 3. 28. 18:45
  • HTTP/1.1 의 POST 때문에 살짝 고민한 문제 ....

    이전에 만든 HTTP/1.0 용 socket source 를 POST 까지 되도록 버그를 수정 하면서 HTTP/1.1 으로 호환되게 변경 하다 보니 알수 없는 문제를 격었습니다. 바로 해당 서버(Apache2 + PHP5) 에서 $_POST[x] method 를 이용해서 넘어 온 것이 없는 듯이 인식 한다는 점 이었습니다만, 여러번의 시도 중 다음 header 인자가 중요하다는 것을 알았습니다. 바로 Content-Type 이 문제 였습니다. PHP5 에서 제대로 POST 되는 내용을 알려면 Content-Type 을 application/x-www-form-urlencoded 로 써야 인식을 하는 것 이었습니다. 기존엔 text/html 로 mime 을 지정해서 보냈더니 이걸 인식 못하는 문제를 이제 ..

    Developement/C/C++
    2015. 2. 23. 17:12
  • CPU 사용율을 알아 오는 소스 (C++)

    이 소스코드는 MinGW 32/64bit 모두에서 동작을 하는 CPU 사용을 확인을 위한 C++ 소스 코드 입니다. cpuu.h 와 cpuu.cpp 파일 내에 CPUUages 라는 Class 가 정의 되어 있으며, 이 Class 에서 CPU 사용율을 얻어 올 수 있도록 만들어 져 있습니다. 이미 많은 부분들에서 이 방법들을 사용하고 있긴 합니다만, MinGW 에서는 제대로 동작하거나 빌드 되지 않아서 이 부분을 다시 재정의 하여 만들었습니다. CPU 가 평균 특정 Percentage 이하로 내려 가야 동작하게 한다거나, 반대로 특정 사용율 이상 일때 뭔가 하도록 하는 방법을 찾으신다면 첨부된 소스를 참조 해 보시기 바랍니다. 별거 아닌 소스 이기 때문에 별다른 정보를 기재 하지는 않겠습니다. * Open..

    어떻게 할까/소프트웨어
    2014. 5. 30. 13:49
  • Mercurial HG 사용자 (username) 지정 하기. + lightpackkr ...

    Mercurial HG 를 처음 접하다 보니, 다음과 같이 소스를 수정 한 다음 commit 을 할떄 오류가 나더군요.username 을 지정하라 ?보통 CVS 나 SVN 에서는 내부에 숨김 디렉토리가 생기고, 이 안에 정보가 포함 되던데, HG는 이런 부분이 다른가 봅니다.일단 하라니 해야겠으니, hg help config 에서 설명 하는데로, 먼저 Mercurial 이 설치된 곳으로 이동 합니다. 저의 경우는 Windows7 64ibit 이므로 다음과 같이 이동 했습니다.(C:\Program Files\Mercurial)여기서 Mercurial.ini 파일을 열고 다음과 같이 항목을 추가 합니다.이중, ui session 이 이미 있으신 분은 추가 되거나 수정 되는 정도 이겠습니다.이제 commit ..

    어떻게 할까/소프트웨어
    2012. 5. 16. 14:25
  • RageDCMV , Free DCM read/write library for standard C++

    DCM 파일을 읽고 쓰는 라이브러리를 공개 합니다. 이 소스 코드는 제가 직접 만든 것이며, 누구나 사용하고 활용 할 수 있되, 이 코드에 대한 저작권만 지켜 주신다면 아무런 제한없이 사용할 수 있습니다. 단, 저작권을 벗어난 권리행사 외에는 어떠한 책임을 지지 않으며, 본 소스코드로 제작하신 바이너리나 코드에 대해서는 일절 support 가 가능하지 않음을 먼저 알립니다. source code 는 gcc 에서 빌드 되도록 만들어 졌으며, CodeBlocks 10.05 에서 project 파일이 생성 되었습니다. 32bit, 64bit, MBCS, Unicode 모두 감안하여 만들어 졌습니다. 사용법이나, 활용에 대해서는 main.cpp 를 참조하시기 바라며, 개선하거나 변경 한 소스에 대해서는 반드시 ..

    내가 작업한 것들/소프트웨어
    2011. 11. 16. 19:05
  • libRTEA rev0.2 : TEA 인코딩/디코딩 C++ class

    저번주에 올렸던 libRTEA 에 몇가지 버그가 있는 것을 수정하고, 기능을 추가 하였습니다. 혹시라도 사용하신 분이 계시다면 이것으로 업데이트 해 쓰시면 좋겠습니다. 바뀐 헤더는 다음과 같으며, HexChar 라는 것이 추가 되었습니다. 위 캡쳐 이미지 처럼 문자열/바이트 배열 을 Hex 값을 표시하는 문자열로 처리 해 주는 기능 입니다. 활용도는 암호화 데이터를 ASCII 내에서 처리 할 수 있도록 뭔가 만들 수 있게 해 주는 정도 이겠습니다.

    Developement/C/C++
    2011. 10. 4. 14:23