코코야이야기
소스코드 //카메라로부터 비디오 영상 입력 Canny 및 에지 검출 #include "cv.h" #include "highgui.h" int main() { CvCapture* capture = cvCaptureFromCAM(0); //cvCaptureFromCAM(index) , 카메라 번호 index로부터 비디오획득을 초기화하여 CvCapture* 포인터를 반환 if(!capture) { printf("You need to connect a camera to your computer."); return 0; } int width = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH); //cvGetCaptureProperty(capture, pr..
소스코드 //cvExtractSURF 함수를 이용한 두 영상의 대응점 계산 //Descriptors - 1 이면 같은 사진 #include "cv.h" #include "highgui.h" #include #include typedef struct MATCH_PAIR { int nA; int nB; } MATCH_PAIR; void MergeImages(IplImage* Image1, IplImage* Image2, IplImage* dstImage); int FindMatchingPoints(const CvSeq* tKeypoints, const CvSeq* tDescriptors, const CvSeq* srcKeypoints, const CvSeq* srcDescriptors, int descrip..
소스코드 //cvExtractSURF 함수로 특징점 및 묘사자 검출 #include #include "cv.h" #include "highgui.h" #include int main() { IplImage *srcImage; if((srcImage = cvLoadImage("Lena.jpg",CV_LOAD_IMAGE_GRAYSCALE)) ==NULL) return -1; IplImage* dstImage = cvCreateImage(cvGetSize(srcImage),IPL_DEPTH_8U,3); //IplImage* corners = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_32F,1); cv::initModule_nonfree(); CvMemStorage* st..
소스코드 //영상에서 cvHoughCircle 함수로 원검출 #include "cv.h" #include "highgui.h" int main() { IplImage *srcImage; if((srcImage = cvLoadImage("circle.jpg",CV_LOAD_IMAGE_GRAYSCALE)) ==NULL) return -1; IplImage* dstImage = cvCreateImage(cvGetSize(srcImage),IPL_DEPTH_8U,3); CvMemStorage* storage = cvCreateMemStorage(0); int k; double dp =1; double min_dist=100; double cannyThreshold=100; double accThreshold=5..
소스코드 //영상에서 cvHoughLines2 함수로 직선검출 #include "cv.h" #include "highgui.h" int main() { IplImage *srcImage; if((srcImage = cvLoadImage("square3.jpg",CV_LOAD_IMAGE_GRAYSCALE)) ==NULL) return -1; IplImage *edgeImage = cvCreateImage(cvGetSize(srcImage),IPL_DEPTH_8U,1); IplImage* dstImage = cvCreateImage(cvGetSize(srcImage),IPL_DEPTH_8U,3); CvMemStorage* storage = cvCreateMemStorage(0); CvSeq* seqLines..
소스코드 //영상에서 cvCanny 함수로 에지 검출 #include "cv.h" #include "highgui.h" int main() { IplImage *srcImage; if((srcImage = cvLoadImage("test.jpg",CV_LOAD_IMAGE_GRAYSCALE))==NULL) return -1; IplImage *edgeImage = cvCreateImage(cvGetSize(srcImage),IPL_DEPTH_8U,1); cvCanny(srcImage,edgeImage,50,100,3); //cvCanny(영상,엣지영상,threshold1,threshold2,aperture_size(디폴트 3)) - threshold1 < threshold2 , 50 :100이 50:200..
소스코드 //트랙바 추가 #include "cv.h" #include "highgui.h" void on_change(int pos =0); IplImage *srcImage, *dstImage; int main() { if((srcImage = cvLoadImage("test.jpg", CV_LOAD_IMAGE_GRAYSCALE)) ==NULL) return -1; dstImage = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U,1); //흑백만 가능 cvNamedWindow("srcImage",CV_WINDOW_AUTOSIZE); cvShowImage("srcImage", srcImage); cvNamedWindow("dstImage",CV_WINDOW_AUT..
소스코드 //마우스 이벤트 처리 //마우스 왼쪽버튼 파란원, 오른쪽버튼 빨간원 #include "cv.h" #include "highgui.h" void on_mouseEvent (int event, int x, int y, int flags, void* param); int main() { IplImage *dstImage; dstImage = cvCreateImage(cvSize(512,512), IPL_DEPTH_8U,3); cvSet(dstImage, CV_RGB(255,255,255)); cvNamedWindow("Mouse Event Handling",CV_WINDOW_AUTOSIZE); cvShowImage("Mouse Event Handling", dstImage); cvSetMouseCa..
소스코드 //키보드 이벤트 #include "cv.h" #include "highgui.h" int main() { IplImage *dstImage; dstImage = cvCreateImage(cvSize(512,512), IPL_DEPTH_8U,3); cvSet(dstImage, CV_RGB(255,255,255)); CvFont font; cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX,1.0,1.0,0,3); //cvInitFont(폰트포인터,폰트이름,가로장평(1,0이 그대로),세로장평(1.0이 그대로),기울기(디폴트는 0),두께,타입) cvPutText(dstImage,"Push the ESC button for exit",cvPoint(30,100),&font,CV_..
소스코드 //문자열출력 #include "cv.h" #include "highgui.h" int main() { IplImage *dstImage; dstImage = cvCreateImage(cvSize(512,512), IPL_DEPTH_8U,3); cvSet(dstImage, CV_RGB(255,255,255)); CvFont font; cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX,1.0,1.0,0,3); //cvInitFont(폰트포인터,폰트이름,가로장평(1,0이 그대로),세로장평(1.0이 그대로),기울기(디폴트는 0),두께,타입) cvPutText(dstImage,"Hello World!!",cvPoint(100,100),&font,CV_RGB(100,200,250)..