차근차근/OpenCV 63

OpenCV를 이용한 Template Matching

http://mgkim.egloos.com/580818 1. HVR-2030R RDK를 이용하여 이미지를 캡쳐한 후, JPG로 저장 [ ->소스 ] 2. 포토샵을 이용하여 소스 이미지에서 템플릿을 추출하여 JPG로 저장. [ ->템플릿 ] 여기서는 "tsukuba.jpg"를 소스 이미지로 사용하고, 이미지 내의 깡통을 템플릿으로 하여 찾아본다. 템플릿 매칭 알고리즘에 대해 간단히 설명해보도록 하자. 템플릿 매칭을 수행하기위해 cvMatchTemplate() 이란 함수를 이용하여 소스와 템플릿의 상관계수 맵(Coefficient Map)을 구한다. 이 함수의 특징은 유클리디안 거리를 사용하여 소스 이미지 전체를 탐색하면서 템플릿 이미지와 얼마나 유사한지를 측정하는 것이다. 여기서 구한 상관계수 맵에서 최대..

차근차근/OpenCV 2014.08.06

매칭률 구하기

매칭률 구하기를 하기 위한 무작정 자료수집 이게 관련 함수인가 봄CV_TM_SQDIFF CV_TM_SQDIFF_NORMED CV_TM_CCOEFF CV_TM_CCOEFF_NORMED CV_TM_CCORRCV_TM_CCORR_NORMED opencv제대로 배우기 p.298 - p.303 템플릿 매칭 템플릿 매칭(Template Matching) = 큰 이미지에서 특정 작은 이미지를 찾는 알고리즘(http://www.obg.co.kr/?mid=programming&document_srl=8840&listStyle=viewer&page=8) cvMatchTemplate()입력 영상을 주어진 영상 패치로 스캔하면서 매칭을 수행void cvMatchTemplate(const CvArr* image,const Cv..

차근차근/OpenCV 2014.08.06

SURF에 의한 특징점 검출

내가 찾고자 했던 것은 cvsurfpoint인데 ..-시퀀스에 저장된 각 요소의 자료구조는 구조체 CvSURFPoint이다. -각 특징에 대해 특징의 좌표 위치, 크기, 방향, 묘사자를 계산할 수 있어, 크기 및 방향에 무관한 물체 주적 및 매칭에 사용될 수 있다.-키포인트의 정보를 저장?(http://www.haenaki.com/141) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++http://blog.naver.com/hwanhee0920?Redirect=Log&logNo=130147029143 1. void cvExtractSURF(..

차근차근/OpenCV 2014.08.06

std::vector<cv::String,std::allocator<cv::String>>ldata>

std::vectorldata> http://www.hanbit.co.kr/network/view.html?bi_id=1606이번 회는 이전 회에 설명한 list와 같은 STL의 컨테이너 라이브러리인 vector에 대해서 이야기합니다. vector는 STL에서 가장 자주 사용합니다. 프로그래밍을 할 때 가장 자주 사용하는 자료구조는 배열입니다. vector는 배열을 대체하여 사용할 수 있습니다. vector는 배열과 비슷한 면이 많아서 STL 컨테이너 중에서 이해하기가 가장 쉽고 또 어디에 사용해야 하는지 알기 쉽습니다. 앞서 연재한 list에 대한 글을 보신 분들은(또는 아시는 분들은) vector와 사용 방법이 비슷한 점이 많아서 list보다 훨씬 더 빠르게 이해하리라 생각합니다. list에서 이미 ..

차근차근/OpenCV 2014.08.06

union CvMat::<unnamed> CvMat::data

openCV 예제를 보다가data.fl [union CvMat:: CvMat::data ]이라는 것이 나왔다.. 이건 뭔가 싶어서 찾아봄. http://kkokkal.tistory.com/1011공용체(union)란 데이터 구조 공용체(union)란 C언어 문법 책 뒷쪽에, 구조체(structure) 다음에 꼽사리로 나오는 데이터 구조. 예를 들어, 아래와 같은 공용체가 정의되어있다고 하자. typedef union _data { char a; int b; float c; } data; 이 경우, 이 공용체는 전체 8바이트의 크기를 갖는다. 이 8바이트 중에서 첫 번째 바이트는 a 변수가 사용하고, 처음 네 개의 바이트는 b가 사용하고, 처음부터 끝까지 여덟 바이트는 c가 사용한다. 즉, 세 멤버 변수 ..

차근차근/OpenCV 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
반응형