T-shirt size problem 아래는 옷을 생산할 때 , 참고하기 위해 만든 사람들의 키와 몸무게에 대한 데이터를 도식화한 그림이다. 회사 입장에서는 모든 사이즈를 만들 수 없기 때문에 아래 그림처럼 사람들의 신체사이즈를 그룹화하여 3개 혹은 5개의 그룹으로 만들어서 제품을 생산하게 된다. 이때 사용할 수 있는 것이 K-Means Clustering이다. How does it work ?이 알고리즘은 반복적인 처리(iterative process) 알고리즘이다. 단계별로 두 개의 데이터 그룹으로 그룹화 해보도록 하자. 1단계 : 알고리즘은 임의로 두 개의 중심점(centroid)인 C1과 C2를 선택한다. C1, C2 ( 중심 점으로 두 개의 데이터를 선택하기도 한다. ) 2단계 : 두 개의 중심..
import numpy as np import cv2 black_image = np.zeros((512,512,3), np.uint8 ) r = 200 for theta in range(0,360): radian = theta*np.pi/180 x=np.cos(radian)*r y=np.sin(radian)*r cv2.line( black_image, (250,250), (int(x+250),int(y+250)), (255,0,0), 1 ) cv2.imshow( "image", black_image ) cv2.waitKey(0) black_image = np.zeros((512,512,3), np.uint8 )512x512크기의 BGR 이미지를 생성. 0으로 채워지기때문에 블랙 이미지임 r = 200 f..
α가 0에서 1로 변화함으로써 선형 blend 연산자는 두 개의 이미지들 또는 비디오들 간에 cross disolve을 실행하는데 사용되어 질 수 있다. 두 장의 이미지가 α값에 따라 다르게 서로 겹쳐서 보이는 것을 볼 수 있다. 실행시킨 후.. 키보드를 누를 때마다 alpha값을 0.1씩 증가시켜서 첫번째 사진에서 두번째 사진으로 변화하는 과정을 보여준다. #include #include using namespace cv; using namespace std; int main( int argc, char **argv ) { double alpha, beta; Mat src1, src2, dst; for( alpha=0.0; alpha
참고 http://goo.gl/GF4i3K 기본적인 방법 마스크 배열(=커널)을 이용하여 이미지 상의 픽셀 값들을 다시 계산한다. 현재 위치의 픽셀 값을 포함한 이웃 픽셀들의 값에 가중치를 곱하여 현재 픽셀 값을 결정한다. 이웃 픽셀들 중 어느 값의 영향을 많이 받아 현재 픽셀 값이 결정되지 여부에 따라 에지 검출이 되기도 하고 잡음제거가 되기도 하는 등 여러 가지 효과를 만들 수 있다. 아래 예제로 나온 마스크는 이미지를 선명하게 만듭니다. filter2D 함수 이용 앞에서 기술한 방법보다 코드가 짧아지고 더 빠른 방법이라고 함.
참고 http://goo.gl/Q0It8 지난번에 작성한 OpenCV 튜토리얼 – Mat (기본 이미지 컨테이너) 1/2를 이어서 작성. http://webnautes.tistory.com/584 Mat 객체 생성하는 방법 1.Mat() 생성자 2x2, 8bit, unsigned char, 1 channel 3x3, 8bit, unsigned char, 1 channel 2x2, 8bit, unsigned char, 3 channel 2.C/C++ 배열 과 생성자 이용 1x2, 8bit, unsigned char, 1 channel 2x1, 8bit, unsigned char, 1 channel 2x2, 8bit, unsigned char, 1 channel 3.create()함수 만들고 나서 사용 전에..
참고 http://goo.gl/Q0It8 디지털화된 이미지는 픽셀이라는 부르는 점들이 모여서 형상을 만든다. 아래 이미지처럼 격자상에 있는 이미지 픽셀의 값은 0~255사이의 값으로 가지도록 해서 파일로 저장된다. 그레이 스케일 영상의 경우 0이면 검은색 점이며 255는 흰색 점이고 그 사이 값들은 해당 값을 강도로 가지는 회색 점들이다. 이런 점들이 모여 디지털 이미지를 화면에 표현하게 된다. 이미지 출처: http://goo.gl/Q0It8 C++로 넘어오면서 자동으로 해주기 때문에 메모리 관리를 따로 해줄 필요가 없다니 다행이지만 튜토리얼에 따르면 임베디드에서는 아직 C만 지원한다는 게 문제라고 한다. 예전에 Mat가 아닌 IplImage를 사용했을 때 할당했다가 수동으로 메모리를 해제해주어야 했었..