전체 글 1439

벡터 (STL)

http://ko.wikipedia.org/wiki/%EB%B2%A1%ED%84%B0_(STL) 벡터 (STL)위키백과, 우리 모두의 백과사전. 이동:둘러보기, 검색 C++ 표준 라이브러리입출력 라이브러리iosiostreamiomanipfstreamsstream표준 템플릿 라이브러리 (STL)vectordequelistmapsetstackqueuebitsetalgorithmfunctionaliteratorv • d • e • h벡터(std::vector)는 동적 배열 구조를 C++로 구현한 것이다. 이것은 C의 배열(빠른 랜덤 접근이 가능한)처럼 행동하지만 자동으로 배열의 크기 조절과 객체의 추가와 삭제가 가능하다.벡터는 C++ 표준 템플릿 라이브러리 중의 하나인 템플릿 클래스이다. 어떤 타입이라도 저장..

모르는 단어 2014.08.06

Laplacian 라플라시안

openCV 예제소스에 나오는데 어차피 이해가 안될 것 같아서 그런 것이 있구나 하고 넘기려고 했었다.그런데.. 한번쯤 알아볼 필요가 있다는 생각도 든다 위키피디아http://en.wikipedia.org/wiki/Laplace_operator OpenCV 제대로 배우기 p.219~ p.220OpenCV의 라플라시안 함수는 라플라시안 수식을 이산 함수용으로 구현한 것이다.라플라시안이 2차 미분 항으로 구성되기 때문에 이산 함수에서의 구현은 소벨 2차 미분과 유사한 형태가 될 것임을 예상할 수 있다.실제로 OpenCV는 라플라시안의 구현함에 있어 내부적으로 소벨 연산자를 사용하고 있다.라플라시안 함수는 주변 픽셀보다 큰 값으로둘러싸인(커널크기보다) 작은 덩어리 또는 한 점에서 큰 양수값을 반환한다. 이와 ..

차근차근/OpenCV 2014.08.05

프리만 체인

http://lueseypid.tistory.com/tag/OpenCV 외곽선 관련 자료 : http://lueseypid.tistory.com/80 ■ 프리만 체인프리만 체인은 외곽선을 검출하는 방법중 하나이다. 프리만 체인에서는 다각형을 8개의 방향으로 구성된 시퀀스로 표현한다.8개의 방향은 0~7까지의 정수로 표현된다. void cvStartReadChainPoints(CvChain* chain, CvChainPtReader* reader); CvPoint cvStartReadChainPoints(CvChainPtReader* reader);cvStartReadChainPoints()은 체인의 객체를 인자로 받아 체인리더를 초기화한다.cvReadChainPoint() 실제로 체인을 읽는 역할을한다...

차근차근/OpenCV 2014.08.05

배경제거

http://lueseypid.tistory.com/93 배경과 전경의 구분은 애매모호한점이 있다. 주차장을 카메라로 촬영하고 있을때 자동차가 주차장안으로 들어온다면 그 차는 새로운 전경객체이다. 하지만 이차가 오랫동안 주차되있는 상태로 놓여있다면 이 차를 계속해서 전경객체로 인식을 해야할지 배경으로 인식을 해야할지 구분을 해주어야 한다. 또한 새로운 전경객체가 얼마나 오랫동안 전경으로 유지되어야 하는지도 고려를 해야한다. 이러한 문제를 해결하기 위해서 전경과 배경사이에 여러개의 계층을 정의한 고차적인 장면 모델링을 구성하거나 오랜 시간동안 움직이지 않는 객체를 배경으로 분류할 수 있는 타이밍-기반 방법을 사용해야한다. 장면 모델링장면 모델은 여러개의 여러 개의 계층을 가지고있다.최상위층 : 새로운 전경..

차근차근/OpenCV 2014.08.05

모멘트 - 외곽선의 유사도 비교

http://lueseypid.tistory.com/88 모멘트외곽선 모멘트는 두 외곽선의 유사도를 비교하는 간단한 방법중 하나이다. 모멘트는 외곽선의 전체적인 특성을 표현하는 척도로써, 외관상에 존재하는 모든 픽셀을 이용하여 계산된다. OpenCV에서는 cvContourMoments()함수를 통해 외곽선의 모멘트를 계산한다. void cvContourMoments( CvSeq* contour, //외곽선 CvMoments* moments //모멘트값이 저장될 변수); CvMoments 구조체 typedef struct CvMoments { double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03; /* spatial moments */ double mu20, ..

차근차근/OpenCV 2014.08.05

외곽선 검출하기

http://lueseypid.tistory.com/80 ■ 외곽선외곽선이란 영상 내 곡선을 나타내는 점들의 리스트로 정의된다. OpenCV에서 곡선은 시퀀스를 이용하여 표현되고, 이때 시퀀스 내부에는 곡선에서 다음 점에 대한 위치 정보가 저장되어있다. ■ 외곽선 검출 - cvFindContours() int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour, int header_size=sizeof(CvContour), int mode=CV_RETR_LIST, int method=CV_CHAIN_APPROX_SIMPLE, CvPoint offset=cvPoint(0,0));img : 입력영상으로 항상 8비트 단일 채널이..

차근차근/OpenCV 2014.08.05

메모리 스토리지

http://lueseypid.tistory.com/78 메모리 스토리지객체를 동적으로 생성하고자 할때 OpenCV에서 메모리를 할당하는 방법메모리 블록들의 연결 리스트 이며, 연속된 메모리 블록들의 집합을 신속하게 할당 또는 해제 할수 있다. cvCreateMemStorage() CvMemStorage* cvCreateMemStorage(int block_size=0); 메모리 스토리지를 생성하기 위해 사용된다. 이 함수는 저장공간 내 메모리 블록들의 크기를 알려주는 block_size를 인자로 갖는데 이 값이 0으로 설정되면 64KB의 기본 블록 크기가 사용된다. 메모리 스토리지가 생성된후 스토리지의 포인터값을 반환한다. cvReleaseMemStorage() void cvReleaseMemStora..

차근차근/OpenCV 2014.08.05

임계값(Threshold)

http://lueseypid.tistory.com/76 임계값(Threshold)영상 내 픽셀중에서 특정 값보다 큰값을 갖는 픽셀만 남기고 나머지 픽셀은 무시하는 작업이 필요한 경우가있다. 이 경우 OpenCV에서는 cvThreshold()함수를 사용한다. double cvThreshold( const CvArr* src, //입력영상 CvArr* dst, //출력영상 double threshold, //임계값 double max_value, //최대값 int threshold_type); //임계값 타입 임계값타입THRESH_BINARYTHRESH_BINARY_INVTHRESH_TRUNCTHRESH_TOZEROTHRESH_TOZERO_INV #include #include #include void s..

차근차근/OpenCV 2014.08.05

시퀀스(Sequence)

http://lueseypid.tistory.com/archive/20130113?page=2 시퀀스(Sequence)Developer/OpenCV 2013/01/13 02:54■ 시퀀스시퀀스(Sequence)는 메모리 스토리지 내에 저장되는 객체들 중 하나이다. 스퀀스는 다른구조체들의 연결 리스트로, OpenCV는 다양한 객체로 구성된 시퀀스를 생성 할 수 있게한다. (다른 언어에존재하는 제너릭 컨테이너 클래스 혹은 컨테이너 클래스 템플릿과 같음) typedef struct CvSeq { int flags; /* 다양한 용도의 플래그 */ int header_size; /* 스퀀스 헤더의 크기 */ CvSeq* h_prev; /* 이전 시퀀스 */ CvSeq* h_next; /* 다음 스퀀스 */ Cv..

차근차근/OpenCV 2014.08.05
반응형