반응형

개발/Computer Vision 32

[OpenCV]Mean Shift 를 이용한 Tracker 현황

현재 Mean Shift 라는 알고리즘을 이용해 Tracker를 개발하고 있습니다.물론 OpenCV에서 제공하는 함수를 이용해서 개발을 했지만 그래도 재밌었습니다. [그림 1 : 일정 영역에 대한 히스토그램 값] [그림 1]을 보면 마우스로 일정 영역을 드래그하면 그 영역에 대한 히스토그램 값이 구해진다. 원래는 사진을 GRAY 로 바꿔서 Tracker를 개발하려고 했는데 그러면 조금 성능이 RGB로 했을 때보다 안 좋은 것 같아서 RGB로 히스토그램 값을 구했다. 소스 코드는 github에 올려놓으면서 작업 일지를 함께 작성하고 있는 중이다. https://github.com/KwonJangHo/Tracker 이번 프로젝트를 진행하면서 Domain Driven Design, DDD라는 개발방법론으로 프..

[OpenCV] 웹 캠 입력 받기

OpenCV로 웹캠 실행하기. 여기서 중요하다고 생각되는 코드는 capture >> video 라고 생각됩니다. 아 그리고 중요한 것을 말 안했는데 CvCapture 라고 VideoCapture와 비슷한 것이 있는데 되도록 VideoCapture를 사용하는 것을 추천한다. 그 이유는 CvCapture를 사용하면 캠 오류가 많단다. 예를 들어 캠을 받아도 회색 화면으로 작동한다던가 코덱 문제 등...

[영상처리] Scale-space theory

Scale-space theory 라는 것은 SIFT 알고리즘을 구성하는 핵심요소 중에 하나이기 때문에 SIFT에 대해서 글을 작성하기 전 알고 넘어가야 할 것들을 먼저 포스팅하고 SIFT에 대해서 작성하려고 한다. [wikipedia 에 있는 Scale space를 해석해서 정리한 것이니 해석에 문제가 있다면 지적해주세요] Scale-space 는 multi-scale signal representation을 위한 framework 인데 computer vision, image processing 그리고 signal processing 와 함께 physics 그리고 biological vision 에서 상호 보안적인 유도를 위해 개발되었다.

[영상 추적] Mean Shift 으로 영상 추적

※ 고등학생이기 때문에 주변에 이 분야에 실력있는 사람이 없을 뿐더러 공부를 하는 사람도 없기에 구글링과 도서에 의존합니다. 출처는 꼭 밝힙니다. 제가 공부한 것을 작성하기 때문에 틀린 부분도 있을 수 있습니다. 지적해주시면 감사합니다. 저번 글에서 Mean Shift에 대해서 알아보았으니 이번에는 Mean Shift을 이용한 영상 이동체 추적에 관해서 이야기 하겠다. 우선 이 Mean Shift 을 이용한 영상 추적은 히스토그램을 이용한다.이 글을 읽기 전 히스토그램에 관해서 공부하고 대충 익히고 왔으면 한다. 히스토그램에 대해서부족한 지식으로 포스팅을 해놓았으니 참고하길 바란다. 원래는 추적하고자 하는 대상 물체에 대한 히스토그램과 현재 입력 영상의 히스토그램을 비교해서 가장 유사한 히스토그램을 갖는..

[영상 추적] Mean Shift

※ 고등학생이기 때문에 주변에 이 분야에 실력있는 사람이 없을 뿐더러 공부를 하는 사람도 없기에 구글링과 도서에 의존합니다. 출처는 꼭 밝힙니다. 제가 공부한 것을 작성하기 때문에 틀린 부분도 있을 수 있습니다. 지적해주시면 감사합니다. 요즘 영상 처리와 컴퓨터 비전 분야에 관심이 많아져서 이런 저런 공부를 하다가 이번 프로젝트로 영상 추적 프로그램을 개발하기로 했다. 그래서 알아보던 중 Mean Shift 란 것과 Cam Shift 라는 것을 알게 되어서 Mean Shift 라는 것에 대해서 작성을 하려고 한다. 먼저 말하고 싶은 것은 Mean Shift은 하나의 추적 방법인 것이 아니라 하나의 일반적인 방법론적 도구라고 한다. 주변에 이 분야에 실력 있는 분이 없을 뿐더러 아직 고등학생이기 때문에 여..

[영상 처리] 효과적인 이진화 알고리즘 - 오츄 알고리즘

※ 고등학생이기 때문에 주변에 이 분야에 실력있는 사람이 없을 뿐더러 공부를 하는 사람도 없기에 구글링과 도서에 의존합니다. 출처는 꼭 밝힙니다. 제가 공부한 것을 작성하기 때문에 틀린 부분도 있을 수 있습니다. 지적해주시면 감사합니다. 오츄 알고리즘은 효과적인 이진화 알고리즘이다. 임계값 T를 기준으로 화소를 두 집합으로 나누었을 때, 각 집합의 명암 분포가 균일할수록 좋다는 점에 착안하여 균일성이 클수록 T에게 높은 점수를 준다. 균일성은 그룹의 분산으로 측정하는데, 분산이 작을수록 균일성이 높으며 가능한 모든 T에 대해 점수를 계산한 후 가장 좋은 T를 최종 임계값으로 취하는 일종의 최적화 알고리즘이다. 다음으로 가기 전 목적 함수 또는 비용 함수라는 것을 알고 가자.먼저 목적 함수란 최적화 알고리..

[영상 처리] 이진 영상

※ 고등학생이기 때문에 주변에 이 분야에 실력있는 사람이 없을 뿐더러 공부를 하는 사람도 없기에 구글링과 도서에 의존합니다. 출처는 꼭 밝힙니다. 제가 공부한 것을 작성하기 때문에 틀린 부분도 있을 수 있습니다. 지적해주시면 감사합니다. 이진화란? 영상을 백(전경)과 흑(배경)의 두 가지 값만 가지도록 하는 것이다. 이진화는 값이 크면 백으로, 작으면 흑으로 바꾸는 간단한 방법이 있는데 값이 크고 작은 것을 어떤 기준으로 구분할지에 대해서는 두 구간을 가르는 임계값(threshold)을 사용하면 된다. 임계값을 T라고 표기했을 때 임계값을 구하는 방법으로 가장 쉬운 방법은 히스토그램을 분석하여 두 봉우리 사이의 계곡 지점을 T라고 하면 된다. 이렇게 임계값 T를 이용해서 이진 영상을 만드는 가장 간단한 ..

[영상 처리] 히스토그램

※ 고등학생이기 때문에 주변에 이 분야에 실력있는 사람이 없을 뿐더러 공부를 하는 사람도 없기에 구글링과 도서에 의존합니다. 출처는 꼭 밝힙니다. 제가 공부한 것을 작성하기 때문에 틀린 부분도 있을 수 있습니다. 지적해주시면 감사합니다. 영상 f의 히스토그램은 명암값이 나타난 빈도수로, [0,L-1] 사이의 명암값 각각이 영상에 몇 번 나타나는지 표시한다. 히스토그램은 여러 용도로 사용되는데 그 중 하나는 영상의 특성을 파악하는 것이다. 또한 조작을 통한 영상 품질 개선이 가능하다. 영상 품질 개선 중 가장 대표적인 연산은 "히스토그램 평활화(histogram equalization)"이다. 이 연산은 [그림 1]의 왼쪽과 같은 영상의 히스토그램을 오른쪽과 같이 평평하게 만든다. 이렇게 하면 영상이 사용..

[OpenCV]사진을 이진화

opencv를 이용해서 사진 이진화[영상 이진화란 RGB 값으로 다양하게 분포되어 있는 생상값을 0과 1만의 값으로 표현하는 것입니다. 실제적으로는 RGB 컬러 영상에 흑백영상으로 바꾼 뒤 특정 임계값(Threshold)을 기준으로 초과 값은 255로 이하 값은 0으로 변환하게 하는 것이다. 128을 기준으로 초과값은 255로 변환되어 흰색으로 보여지고 이하 값은 0으로 변환되어 검은색으로 보여진다.]/*출처 opencv 카페. 영상이였을 때의 코드를 글쓴이가 다시 사진 기준으로 코드 바꿈*/ #include "opencv2\opencv.hpp" #include //사진이진화 void main() { int i, threshold = 128;//임계값(threshold) 설정 IplImage* image..

반응형