Python-이론/python-opencv(29)
-
[opencv-python] 이미지 Thresholding
이미지 Thresholding 이미지 Thresholding는 문턱 값 이상이면 어떤 값으로 바꾸어주고 낮으면 0으로 바꾸어주는 기능을 합니다. 예전에 전자전기개론때 배운 문턱전압이랑 비슷한 이론인 것 같습니다. cv2.threshold(img, threshold_value, value, flag) img:grayScale이고 threshold_value는 픽셀 문턱값이고 문턱값 이상이면 value로 바꾸어줍니다. flag에서도 다양한 종류가 존재합니다. cv2.THRESH_BINARY: threshold보다 크면 value이고 아니면 0으로 바꾸어 줍니다. cv2.THRESH_BINARY_INV: threshold보다 크면 0이고 아니면 value로 바꾸어 줍니다. cv2.THRESH_TRUNC: th..
2019.07.05 -
[opencv-python] 색공간 바꾸기 및 색 추적
이번에는 프레임에서 특정 색깔만 추출해보겠습니다. 색공간 변경하기! HSV방법으로 색공간을 변경해보겠습니다. Hue(색상), Saturation(채도), Value(진하기)로 표현할 수 있습니다. saturation은 원의 중심에서 0%에서 100%까지 의미합니다. V는 바닥에서 천장까지 0% ~ 100%를 의미합니다. openCV에서는 Hue의 범위를 [0, 179]까지 saturation, Value의 범위를 [0, 255]로 정의하고 있습니다. 아래는 bgr값을 hsv값으로 변경하는 코드입니다. import numpy as np import cv2 def hsv(): blue = np.uint8([[[255, 0, 0]]]) green = np.uint8([[[0, 255, 0]]]) red = n..
2019.07.04 -
[opencv-python] 이미지 연산 처리를 이용한 합성
이미지 더하기 두개의 이미지를 합성 해보겠습니다. 코드 import numpy as np import cv2 def addImage(imgfile, imgfile2): img1 = cv2.imread(imgfile) img2 = cv2.imread(imgfile2) img1 = cv2.resize(img1, (479, 557)) print(img1.shape) print(img2.shape) cv2.imshow('img1', img1) cv2.imshow('img2', img2) add_img1 = img1 + img2 add_img2 = cv2.add(img1, img2) cv2.imshow("img1 + img2", add_img1) cv2.imshow("cv2.add", add_img2) cv2.w..
2019.07.02 -
[opencv-python] roi 및 속성, 채널
이번에 해볼 것은 제목의 roi설정 뿐만 아니라 속성을 가져오고 채널을 분할하고 합치는 것을 해보겠습니다. 속성을 가져오기 코드 import numpy as np import cv2 img = cv2.imread("../resource/Images/ipad.jpeg") print(img.shape) print(img.size) print(img.dtype) 결과 이미지 ROI 이미지를 처리할 때 특정 영역에서 작업이 이루어지는 경우가 있습니다. 이럴 때 ROI를 사용하여 특정 구역을 인덱싱하여 사용할 수 있습니다. 코드 import numpy as np import cv2 img = cv2.imread("../resource/Images/ipad.jpeg") cv2.namedWindow('original..
2019.07.02 -
[opencv-python] 트랙바 만들기
이번에는 여러 가지(색, ONOFF)등을 조절할 수 있는 트랙바를 만들어 보겠습니다. 코드 import numpy as np import cv2 def onChange(): pass def trackBar(): img = np.zeros((200, 512, 3), np.uint8) cv2.namedWindow("color Track Bar") cv2.createTrackbar('B', 'color Track Bar', 0, 255, onChange) cv2.createTrackbar('G', 'color Track Bar', 0, 255, onChange) cv2.createTrackbar('R', 'color Track Bar', 0, 255, onChange) switch = "0: OFF\n1: O..
2019.07.02 -
[opencv-python] 도형 그리기 with 마우스
이전 글에서 단순히 코드를 사용하여 도형을 그려 보았습니다. 이번에는 마우스 이벤트를 사용하여 도형을 그려보겠습니다. 코드 import numpy as np import cv2 from random import shuffle b = [i for i in range(256)] g = [i for i in range(256)] r = [i for i in range(256)] def onMouse(event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDBLCLK: shuffle(b), shuffle(g), shuffle(r) cv2.circle(param, (x, y), 50, (b[0], g[0], r[0]), -1) def mouseBrush(): img ..
2019.07.02