전라북도에 있을까요? 7-8달 사이에 공부하고 싶은데;;
ㅡ,.ㅡ
OpenCV 책 사서 읽었는데 수학책 펼쳐 보는 느낌이었습니다..
그냥 함수나 가져다 쓰는거지 이건 죽어도 이해못하겠더군요

이미지 프로세싱이라는게
ex) 이미지를 Bitmap으로 만들어서(메모리에 올려서) 올리게 되면
ARGB값의 배열로 올라가게 되는데
그걸 회색이미지로 바꾸거나
더욱 빨갛게 만들거나
전채적으로 밝게 만들거나 하는것이 이미지 프로세싱이라고 하는건가요?
이미지 프로세싱의 한 기능이기도 하지요
글쓴이가 말한 이미지 프로세싱이 어느정도까지 의미하는 것인지는 모르겠지만
단순 채도/명도 변화뿐만 아니라 sharpen, blur ,팽창,침식, threshold, 색 반전,cannyedge 등도 있고
외곽선 검출해서 특정영역 검출, 특정 이미지 비교 검출이나 얼굴 인식도 이미지 프로세싱 응용 기술이기도 하고
특정 영역 화면 늘리기 등도 있고..
뭐 여튼 OpenCV 하면서 느낀건..와..이거 1년만 미리 알았어도
국내에서 10 손가락 안에 드는 이미지 변환 앱 만들 수 있겠다 싶더군요..
맞아요^^
근데, 블러라던지 단순 색조계를 변형하는 것은 가장 단순한 기초기술에 불과하구요.
이미지 프로세싱의 궁극(목표)은 AI (누적된 자료를 통한) 와 함께 이미지내의 객체들을 인식하는 거예요.
보안쪽에서 쓰이고, 로봇, 군사쪽에서 유용하게 쓰이고 있습니다.
영화 아이언맨에서 수트 조종자의 마스크 뷰(유리?)에
적들이 자동으로 에이밍되고 거리/표적크기 등 적들의 정보가 출력되는 장면 보신적 있으신가요?ㅎㅎ
아니면, 단순히 게임 핵이나 자동 매크로를 만들때도 이미지 프로세싱이 필요하기도 하구요.
이 모든 것들은
말씀해주신 이미지 내부의 픽셀 하나하나들의 값을 참조하는 것으로 시작됩니다.

.................제가 궁금한것은 ㅠㅠ
이미지를 메모리에 올리면 이미지의 픽셀정보들이 ARGB같은 스타일로 메모리값이 되는데
그 정보들을 변형하는게 전부인게 맞나요? (각종 수식말구요 기반적인 것이)
아니면 다른방법으로 이미지들을 변형하는것인지 궁금합니다. ㅠㅠ
이미지는 픽셀의 집합이고 픽셀은 색상으로 구성되어 있으니 기본적으로는 선후님께서 말씀하신 것이 맞습니다.
어떠한 방식으로든 이 정보들을 변형시키는 것입니다.
그런데 이것 뿐만 아니라 영상 압축도 이미지 프로세싱에 포함되고
이미지로부터 어떤 정보를 뽑아내는 것도 이미지 프로세싱에 포함됩니다.
이미지 프로세싱에는 다음과 같은 것들이 있습니다.
영상 조작 - 포토샵에 있는 모든 기능 + 알파 (포토샵에 영상조작에 대한 것이 모두 있는 것은 아니므로)
영상 분석 - 영상에서 특징을 찾아내는 것. 카메라로 치수 측정, 의료영상 분석 등
영상 인식 - 얼굴인식, 지문인식, 문자인식 등
영상 통신 - 영상 압축, 영상 보정 등
이미지 프로세싱에서 사용되는 모든 알고리즘은 수학입니다.
따라서 이미지 프로세싱을 잘 하시려면 수학을 잘 하셔야 합니다.
음... 비유하여 보자면...
누군가가 OpenCV 라이브러리 사용해서 이미지 프로세싱 좀 해봤다고
별 것 아니네... 고등학교 수학보다 쉬웠어요...라고 얘기했다면
제가 때려줬을 거예요.
고등학교 수학보다 쉬웠어요... 이건 좀 아닌 듯.
글쓴이 인데요
NOBRAIN님 말씀처럼
제가 앱을 만들때 처음에는 픽셀을 마스크 처리 하는 기본적인 방법들로
이미지 처리를 하니 처리하는 시간이 너무 오래 걸리 더라고요
그래서 openCV를 이용해서 만든 앱이 있거든요
그런데 제 손으로 만든것 같지 않다는 느낌이 너무 크더라고요 ㅋ
그래서 전문적으로 더 배우고 싶은데 주위에 배울만한데도 없고
휴..
어디 없나요 ㅋ
자신이 만든 것 같지 않다는 느낌이 드는 것은,
처음부터 openCV를 사용했기 때문이구요.
그냥 아무것도 없는 상태에서 MFC 같은 코드에 집중할 수 있는 툴로,
이미지 자체를 띄우고 픽셀 하나하나를 변경해보시면 같은 기능을 구현할 수 있습니다.
이 기초적인 단계를 한 번 해보시면, 내부 구조가 어떻게 돌아가는지 파악이 가능하기 때문에,
openCV로 손쉽게 함수만으로 변형하더라도, 스스로 한 것이 아니라는 느낌은 들지 않겠죠? ^^
단지 누군가 함수화 해놔서 이용할 뿐이고, 시간만 주어진다면 스스로 구현할 수 있게되는것이니까요.
앞서 말씀드린 openCV같은 라이브러리가 아닌,
직접 이미지를 변환하는 기초적인 기술들은 시중에 책으로 많이 나와있습니다.
툴은 쓰라고 있는 게 아닐까요? ^^
저는 좋은 라이브러리 있는데도 그걸 굳이 직접 구현해 보겠다는 건 미련한 것이라고 봅니다. (공부 차원에서라면 몰라도)
다만 OpenCV를 쓰더라도 어떤 원리로 되는 건지는 이해를 하고 있어야 하겠지요.
전문적으로 배우고 싶으시면 근처에 있는 대학교에 가서 강의를 들으심이 어떨런지요?
대부분의 대학교에서 전자과 또는 전산과에 영상처리 관련 과목들이 개설되어 있을 것입니다.
물론 과목 담당교수님께는 미리 양해를 구하셔야 하겠지요. 대부분 다 OK하실 겁니다. 공부하겠다는데 그걸 못하게 하면 교수가 아니죠. ^^
대학교 전자나 제어과 같은과에서 영상 처리쪽 교수들이 이미지프로세싱 가르칩니다.
영상처리, 디지털 신호처리 뭐 이런식으로 이름 붙여서.
학부에서는 기본 이론가지고 간단히 실습하는 정도 수준이고,
대학원 진학해서 computer vision등 영상쪽 전문적으로 하는 연구실 들어가시면 됩니다.
opencv는 초보나 혼자서 일할때 어쩔수 없이 쓰는거고,
제대로 된 연구실이면 자체적으로 만든 엔진가지고 거기다 기능 개발해서 논문쓰고 그러죠.
위에 박사과정 졸업생들 있으면 엔진 수준이 이미 상용화했거나 상용화 할 정도
수준된 곳도 많을 겁니다.
실제로 상용화 하려면 FPGA나 ASIC으로 만들어서 하드웨어로 돌려야
실시간 처리나 고해상도 영상처리가 되죠.
제대로 하려면, 영상쪽 전문적으로 하는 대학원 연구실 가셔서
최소한 석사이상은 하셔야 됩니다.
학원은 없을 것 같고... 근처 대학교에 몰래 가서 수업을 들으시는 게 가장 좋을 것 같아요.
책 보고 공부하셔도 되는데 이건 원리를 익히셔야 해서...
아니면 외국의 경우 강의 동영상 같은 것 많은데... (유명한 교수들이 강의하는 거라 아주 쉽게 잘 설명해 줌)