코코야이야기
소스코드 //다각형 그리기 및 채우기 #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)); CvPoint pts1[4] = {{100,100}, {200,100}, {200,200}, {100,200}}; CvPoint pts2[3] = {{300,200}, {400,100}, {400,200}}; CvPoint *polygon[2] = {pts1,pts2}; int npts[2] = {4,3}; //open polyine cvPolyLine(dstImage, p..
소스코드 //타원그리기 #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)); cvLine(dstImage, cvPoint(50,200), cvPoint(450,200), CV_RGB(0,255,0)); cvLine(dstImage, cvPoint(250,100), cvPoint(250,300), CV_RGB(0,255,0),2); cvEllipse(dstImage, cvPoint(250,200), cvSize(200,100), 0,0,360,CV_RGB(0,0,2..
소스코드 //원그리기 #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)); cvRectangle(dstImage, cvPoint(100,100), cvPoint(400,400), CV_RGB(255,0,0)); cvLine(dstImage, cvPoint(250,100), cvPoint(250,400), CV_RGB(0,255,0)); cvLine(dstImage, cvPoint(100,250), cvPoint(400,250), CV_RGB(0,255,0)); c..
소스코드 //라인, 사각형 그리기 #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)); //=cvSet(dstImage, cvScalarAll(255); cvRectangle(dstImage, cvPoint(100,100), cvPoint(400,400), CV_RGB(255,0,0)); cvLine(dstImage, cvPoint(400,100), cvPoint(100,400), CV_RGB(0,255,0)); //cvLine(이미지,좌표,좌표,색깔,두께(디폴트..
소스코드 //두이미지 합치기 , 함수사용x, 두이미지의 크기가 같아야만 가능 #include #include void main() { IplImage *sum_image=0, *image1=0, *image2=0; uchar *sum_data, *data1, *data2; int height1, width1, channels1; int i, j; //이미지 생성 image1=cvLoadImage("배경.jpg", -1); image2=cvLoadImage("test.jpg", -1); sum_image = cvCreateImage( cvGetSize(image1), 8, 3); //데이터 정보 저장 data1 = (uchar *)image1->imageData; data2 = (uchar *)image2..
소스코드 //두이미지 합치기 , 함수사용, 두이미지의 크기가 같아야만 가능 #include #include void main() { IplImage *sum_image=0, *image1=0, *image2=0; image1=cvLoadImage("test.jpg", -1); image2=cvLoadImage("배경.jpg", -1); sum_image = cvCreateImage( cvGetSize(image2), 8, 3); cvAdd(image1, image2, sum_image, NULL); cvNamedWindow("Image 1", CV_WINDOW_AUTOSIZE); cvNamedWindow("Image 2", CV_WINDOW_AUTOSIZE); cvNamedWindow("Sum Image..
소스코드 //사진 명암 조절, 함수를 사용하지 않고 #include #include #include void main() { IplImage* image = 0; IplImage* bright_image = 0; IplImage* dark_image = 0; int height, width, channels, i, j; uchar *data, *data1, *data2; image = cvLoadImage("night.jpg",-1); height=image->height; width=image->width; channels=image->nChannels; data=(uchar*)image->imageData; //data가 uchar* 타입이라 (uchar*)타입으로 강제로 캐스트 해줘야함 //영상만들..
소스코드 //사진 명암 조절, 함수를 사용하여 #include #include void main() { IplImage* image = 0; IplImage* bright_image = 0; IplImage* dark_image = 0; image = cvLoadImage("night.jpg",-1); //영상 만들기 bright_image=cvCreateImage(cvGetSize(image), 8, 3); dark_image=cvCreateImage(cvGetSize(image), 8, 3); cvAddS(image, CV_RGB(60,60,60), bright_image, NULL); //cvAddS(원본영상,더하고 싶은 값, 목적영상, 마스크지정) //CV_RGB(60,60,60) : 여기서 60..
소스코드 //사진 픽셀에 접근해서 컬러사진을 흑백으로 변환, 공식 : i = 0.114 x B + 0.587 x G + 0.299 x R #include #include #include void main() { IplImage* image=0, *N_image=0; int N_height, N_width, intensity, N_channels; //intensity : 원본영상에서 컬러 데이터값들을 흑백데이터값으로 바꾼값을 저장하는 변수 int i,j,k; uchar* data,* N_data; image=cvLoadImage("night.jpg",-1); data = (uchar*)image->imageData; N_image=cvLoadImage("night.jpg",-1); N_height = N..
소스코드 //사진 정보 출력 #include #include void main() { IplImage* image; uchar* data; image=cvLoadImage("night.jpg",-1); data = (uchar*)image->imageData; printf(" # of channels \t = %d \n",image->nChannels); //nChannels : 영상의 픽셀당 채녈 수 1~4의 값을 가짐. 흑백영상의 채널수는 1, 컬러는 3 printf(" origin \t = %d \n",image->origin); //origin : 영상의 원점을 나타냄. 영상의 시작위치. 0은 왼쪽상단, 1은 왼쪽하단 printf(" width \t\t = %d \n",image->width); ..