본문 바로가기

OpenCV/c++

(4)
마우스 이용해서 도형 그리기( c++) setMouseCallback("image", mouse_callback, 0); -> 이걸 미리 작동 시키면, 마우스 관련 이벤트가 발동하면 실행된다. C++ 1. 클릭하면 원하는 곳에 설정해서 도형 그리기(원, 사각형) #include #include using namespace std; using namespace cv; bool mouse_pressing = false; bool drawing_mode = true; //시작 좌표 int start_x = 50; int start_y = 50; int a, b, c; //도형 내부 색 Scalar color(0, 255, 0); Mat img; RNG rng(543210); void mouse_callback(int event, int x, int..
OpenCV 기본 제공 GUI 1. Canny 함수 : 이미지의 에지(EDGE) 검출 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 2. 키보드 이벤트 int a = waitKey(시간ms) 27: esc 49: 1 50: 2 51: 3 3. 마우스 이벤트 : 리턴 타입 int EVENT_LBUTTONDOWN: 마우스 왼쪽 버튼 클릭 EVENT_LBUTTONUP: 마우스 왼쪽 버튼 때면 EVENT_RBUTTONDOWN EVENT_MOUSEMOVE:
OpenCV 영상처리 기본 개념 1. 픽셀과 이미지 : 이미지의 너비 * 이미지 높이 = 픽셀 갯수 : 픽셀 좌표는 (x,y)가 아닌 (y,x) : 왼쪽 위 (0,0) 오른쪽 위 (0,100) : 왼쪽 아래 (100,0) 오른쪽 아래 (100,100) 2. 컬러 : OpenCV는 RGB가 아닌 BGR 사용.( Blue, Green, Red) 3. 그레이 스케일 4. 이진화 클래스 : 흑백, 0 or 255 5. MAT 객체끼리는 같은 이미지 데이터를 공유한다. -> gray 처리된 그림이 그대로 넘어감 ROI(Region of Interest): 이미지 짜르기 ex) Rect(시작 x, 시작 y, width, height) Range(),Range() -> 시작 끝 꼭지점 6. Clone() 쓰면 이미지 데이터를 새롭게 복사함 7. 픽..
OpenCV 기본 동작 Mat a; : 이미지 받아오는 객체 a.empty(): 불러올수 없는 경우 1. 이미지 관련 imread( " .jpg", IMREAD_COLOR) : 이미지 불러오기 imshow("윈도우 이름", Mat 객체) : 윈도우에 이미지 띄우기 waitKey(0) : 키보드 입력까지 대기, return 값이 있음 - esc 는 27 cvtColor( 기존 이미지, 변경된 이미지 저장, 변경 방식) 2. 동영상 : 동영상은 연속적인 이미지로 다루어짐 : 카메라 인덱스를 알아야 하는데, 연결한 순서대로임. 처음 연결한 카메라의 인덱스가 0 VideoCapture 객체 사용 1) VideoCapture a(0); -> 숫자는 카메라 인덱스 2) a.read(Mat 객체) 로 불러옴 : 실패하면 false 리턴 3..