🐍Python
[OpenCV] 03-2. Arithmetic Operations on Images
덧셈, 뺄셈, 비트연산 등 이미지에 대한 다양한 산술 기능을 배워볼 것이다.cv2.add(), cv2.addWeighted() 에 대해서 알아볼 것이다.Image Additioncv2.add() 함수를 통해서 두 개의 이미지를 더할 수 있고 혹은 res = img1 + img2 처럼 numpy 연산으로도 가능하다. 두 개의 이미지는 동일한 깊이와 타입이거나 두 번째 이미지가 그냥 scalar이어도 된다.import numpy as np import cv2 x = np.uint8([250]) y = np.uint8([10]) # Saturation 연산 print(cv2.add(x,y)) # 255이상이어서 255로 표현함 # Modulo 연산 print(x+y) # 256보다 크기에 256으로 나눠준다...
[OpenCV] 03-1. Basic Operations on Images
픽셀 값에 접근 및 수정이미지 특성에 접근ROI를 세팅한다.(Region of Image)이미지를 합치고 나눈다.이번 섹션에서는 OpenCV보다는 Numpy가 더 주로 사용된다. OpenCV로 더 잘 최적화된 코드를 작성하려면 Numpy에 대한 충분한 지식이 필요하다.Accessing and Modifying pixel values먼저 컬러 이미지를 불러오자.import cv2 import numpy as np img = cv2.imread('soccer.jpg') 행과 열 좌표로 픽셀 값에 접근할 수 있다. BGR 이미지의 경우, 파랑 초록 빨강 값의 array를 출력한다. 흑백 이미지의 경우, 그냥 강도에 대응하여 출력된다.px = img[100,100] print(px) ## [50,64,62] #..
[OpenCV] 02-5. Trackbar as the Color Palette
이번에는 OpenCV 창에 trackbar를 결합하는 것을 학습해볼 것이다. cv2.getTrackbarPos(), cv2.createTrackbar() 함수에 대해서 배워볼 것이다. Code Demo색을 조절할 수 있는 간단한 기능을 만들어 볼 것 이다. BGR 색으로 지정할 수 있는 세가지 trackbars를 보여주는 창을 갖고 있다. Trackbars를 끌면 그에 따라 창의 색이 바뀐다. 기본적으로 초기 색을 검정색이다.cv2.getTrackbarPos() 함수에 대해서, 첫 번째 argument는 trackbar의 이름이고, 두 번째는 창의 이름, 세 번째는 초기값, 네 번째는 최대 값, 다섯 번째는 매 trackbar 값이 변할 때 실행되는 callback 기능이다. Callback 기능은 항상..
[OpenCV] 02-4. Mouse as a Paint-Brush
OpenCV에서의 마우스 이벤트 다루는 법을 배울 것이다.cv2.setMouseCallback() 을 배워 볼 것이다. Simple Demo더블 클릭하면 이미지 위에 원이 생기는 간단한 기능을 만들어보자.먼저, 마우스 이벤트가 발생할 때, 마우스 callback 기능을 만든다. 마우스 이벤트는 좌버튼 아래로, 좌버튼 위로, 좌 버튼 더블 클릭등으로 마우스와 관련된 것이면 된다. 모든 마우스 이벤트에 대해 좌표 (x,y)를 주는 것이다. 이 이벤트와 위치를 가지고, 원하는 모든 것을 할 수 있다. 모든 이벤트를 나열하려면 다음 코드를 실행하면 된다.import cv2 events = [i for i in dir(cv2) if 'EVENT' in i] print(events) 위 코드를 실행한 결과는 다음과..
[OpenCV] 02-3. Drawing Functions in OpenCV
서로 다른 기하학적인 모양을 OpenCV를 이용해서 그려볼 것이다.cv2.line(), cv2.circle(), cv2.rectangle(), cv2.ellipse(), cv2.putText() etc Code공통적인 arguments를 사용한다.img : 모양을 그려넣고 싶은 이미지이다.color : 모양의 색깔. BGR로 나타낸다. Blue = (255,0,0), 흑백의 경우 그냥 scalar 값을 주면 된다.thickness : 선이나 원의 굵기. -1이 원에 주어지면 모양을 채울 것이다. 기본은 1이다.lineType : 라인의 형태. Drawing Line선을 그리기 위해서, 선의 시작과 끝의 좌표를 주어야한다. 검은 이미지를 만들고 왼쪽 위에서 오른쪽 아래로 이어지는 파란 선을 만들 것 이다...
[OpenCV] 02-2. Getting started with Videos
Video를 읽고, 출력하고, 저장하는 것을 배워 볼 것 이다. 그리고 카메라로부터 캡쳐하고 출력하는 것도 배울 것이다. cv2.VideoCapture(), cv2.Videowriter()에 대해서 알아 볼 것이다.Capture Video from Camera종종 카메라로 부터의 라이브 스트림을 캡쳐해야할 때가 있다. 이에 대해 OpenCV는 간단한 인터페이스를 제공한다. 노트북에 내장된 카메라를 통해 캡쳐해보고, grayscale로도 변환해보고 출력해보자!먼저 VideoCapture 객체를 만들어야한다. device 번호나 파일의 이름이 될 수 있다. device index는 기기를 구분하기 위한 번호이다. 보통은 하나의 카메라가 연결될 것이다. 그러디 간단하게 0을 넘겨주자. 그러면 프레임별로 캡쳐할..