Corner일 경우 모든 방향으로 window를 움직일 경우, intensity의 변화가 크다. Moravec corner detector Harris corner detector 변화율을 보기 위해 다음 식을 이용한다. Taylor’s expansion을 이용하여 풀면
영상에서 추적하고 싶은 부분을 정한다(ROI) cvSetImageROI(grayImg,cvRect(305,210,125,100)); 사각형 부분(피부색)에 대한 히스토그램을 얻는다. 이 히스토그램으로 backproject를 구한다. cvCalcBackProject(&grayImg, backprojectImg, cvHist ); 히스토그램 정규화 후 확률 값을 얻는다. 히스토그램 x축은 픽셀 값, y축은 확률이 된다. cvNormalizeHist(cvHist,100); BackProjection 된 이미지의 각 픽셀 값에 해당하는 확률을 히스토그램에서 찾아서 픽셀값x확률로 새로 갱신해준다(ex:픽셀값:100, 확률 0%이면 픽셀값을 0으로 갱신) p2 = (unsigned char*)backprojectI..
1차 미분 값의 크기 : 영상에서 윤곽선의 존재여부 2차 미분 값의 부호 : 윤곽선 픽셀의 밝고 어두운 부분의 위치 Mask void cvFilter2D(const CvArr* src, CvArr* dst, const CvMat* kernel, CvPoint anchor = cvPoint(-1,-1)); # src: 입력 영상 # dst: 출력 영상 # kernel: 커널(마스크) # anchor: 마스크 시작 위치 # Ex) cvFilter2D(srcImage, img2, &mask); CvMat cvMat(int rows, int cols, int type, void* data = NULL); # rows: 가로 픽셀 수 # cols: 세로 픽셀 수 # type: CV8UC1, CV_32FC2 등의 ..
덧셈 Void cvAdd(const CvArr* src1, const CvArr* src2, CvArr* dst, const CvArr* mask=NULL); #dst = src1 + src2 void cvAddWeighted(const CvArr* src1, double alpha, const CvArr* src2, double beta, double gamma, CvArr* dst); #dst = src1 x alpha + src2 x beta + gamma 뺄셈 Void cvSub(const CvArr* src1, const CvArr* src2, CvArr* dst, const CvArr* mask=NULL); #dst = src1 - src2 void cvSubRS(const CvArr* src..