OpenCV 기본 연산
1. 픽셀 정보 가져오기 1) (100, 200)에 위치한 pixel의 Blue, Green, Red값 가져오기 px = img[100,200] print(px) 2) (100,200)에 위치한 pixel의 Blue 값 가져오기 - OpenCV에서는 RGB순이 아닌 BGR이다. - 즉 Blue는 0, G는 1, R은 2의 인덱스에 위치하게 된다. b = img[100,200,0] print(b) -item() 함수를 사용하여 픽셀의 컬러값을 가져올 수 있다. # (20,20)에서의 red값 img.item(20,20,2) 3) pixel 값 변경하기 (흰색으로) img[100,200] = [255,255,255] 2.영상의 속성 - 영상의 형태 정보 img.shape #(h,w,channel)값을 리턴받..
도형 그리기(직선, 사각형, 원, 타원, 다각형, 텍스트)
도형 그리기 - 도형 그리기는 동영상이나 사진에서 어떠한 특정 위치를 표시하고자 할때 사용된다. 1. 빈 스케치북 만들기 import cv2 import numpy as np #세로 480 x 가로 640, 3Channel (RGB) 에 해당하는 스케치북 만들기 img = np.zeros((480,640,3), dtype=np.uint8) img[:] = (255,255,255) #전체 공간을 흰색으로 채우기 cv2.imshow('img',img) cv2.waitKey(5000) # 지정된 시간 동안 사용자 키 입력 대기 cv2.destroyAllWindows() 2.직선 그리기 import numpy as np import cv2 img = np.zeros((512,512,3),np.uint8) img..
이진화, 오츠 알고리즘(Binarization, Thresholding, Otsu Algorithm)
1. 이진화 - 명암 영상을 흑과 백만 가진 이진 영상으로 변환하는 것. 이때 백은 0, 검은색은 255를 의미한다. - 영상을 이진화하는데 이유는 여러가지의 이유가 있지만, 가장 중요한 이뉴는 어떠한 경계값을 기준으로 이진화를 시키면 물체가 뚜렷해지기 때문이다. - 그럼 어떻게 화소의 명암값을 흑과 백 중 하나로 결정할 수 있을까? - 간단히 생각해보자면 어떠한 임계값(T)을 지정해 두고, 그 화소의 값이 임계값보다 크다면 백, 작으면 흑으로 바꾸는 것이다. cv2.threshold(이진화할 이미지경로, 임계값(T), x>T일때 적용할 값, thresholding type) import cv2 img = cv2.imread('book.jpg', cv2.IMREAD_GRAYSCALE) #threshold..