코코야이야기
소스코드 //사진 명암 조절, 함수를 사용하지 않고 #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); ..
소스코드 //사진출력 #include int main(){ IplImage* image; image=cvLoadImage("test.jpg",-1); // cvLoadImage("사진위치",영상의 색지정) //iscolor가 0 or -1일때 : 컬러영상, iscolor가 1일때 흑백 cvNamedWindow("사진출력",CV_WINDOW_AUTOSIZE); // cvNamedWindow("콘솔창 이름", 콘솔창의 크기) // flags = 1 일때 출력 창 크기 조절 불가능 ,flags = 0일때 조절 가능, flag = CV_WINDOW_AUTOSIZE 면 실제 사이즈 크기 cvShowImage("사진출력",image); // image에 잇는 장면을 윈도우에 그린다. cvWaitKey(0); // ..
공개 키 암호화 시스템(public-key cryptosystem) - 안전하게 키를 분배하는 문제를 해결하기 위해 개발됨 - 메시지를 보낼 때 >> 송신자는 수신자의 공개 키를 찾아 사용하여 암호화한 후 전송 - 메시지를 읽을 때 >> 수신자는 자신이 가진 비밀 키(secret key)를 사용하여 복호화 - 공개 키 암호화 시스템의 구성 조건 >> P 공개 키, S 비밀 키, M 메시지 ① S(P(M)) = M ② 모든 (S, P) 쌍은 유일해야 한다. ③ P로부터 S를 알아내는 것은 M을 해독하는 것만큼 어려워야 한다. ④ S와 P는 쉽게 계산할 수 있어야 한다. 공개 키 암호화 시스템의 기본적인 전제 - 주어진 큰 숫자가 소수인지를 결정하는 빠른 알고리즘은 있지만, 주어진 큰 비소수의 소수 인자를 ..
Birthday Attack (Birthday Paradox) Pq(N, s) = (1-1/N)(1-2/N)¼(1-(s-1)/N) Pd(N, s) = 1-(1-1/N)(1-2/N)¼(1-(s-1)/N) –Pq : s명의 생일이 모두 다를 확률 –Pd : s명 중 2명의 생일이 같을 확률 사람이 임의로 모였을 때 생일이 같은 두 명이 존재할 확률. 생일의 가능한 가짓수는 365개이므로 366명 이상의 사람이 모인다면 생일이 같은 쌍이 반드시 존재. 생일이 365가지이므로 임의의 두 사람의 생일이 같을 확률은 1/365이고, 따라서 365명쯤은 모여야 생일이 같은 경우가 있을 것이라고 생각하기 쉽다. 그러나 실제로는 23명만 모여도 생일이 같은 두 사람이 있을 확률이 50%를 넘고, 57명이 모이면 99%를..
그라함 스캔 http://www.cs.princeton.edu/courses/archive/spr10/cos226/demo/ah/GrahamScan.html 보로노이 다이어그램 http://www.cs.cornell.edu/Info/People/chew/Delaunay.html 최적 이진 탐색 트리 http://www.cs.auckland.ac.nz/software/AlgAnim/opt_bin.html 스트링 편집 거리 http://csilm.usu.edu/lms/nav/activity.jsp?sid=__shared&cid=emready@cs5070_projects&lid=10
AVL 트리 (Adelson-Velskii, Landis Tree) - 러시아의 수학자 Adelson-Velskii와 Landis가 고안한 높이 균형 이진 탐색 트리(height-balanced binary search tree) - 오른쪽 서브트리와 왼쪽 서브트리의 높이 차가 2 이상이 되면 회전을 통해 트리의 높이 차를 1 이하로 유지 - 높이 차 = 오른쪽 서브트리의 높이 – 왼쪽 서브트리의 높이 수행 과정 소스 코드 # include # include # include # include # include using namespace std; const int N = 1000000; //백만으로 double key[N+1]={0,}; double search_key[N+1]={0,}; struct ..