Python/OpenCV
-
[OpenCV 튜토리얼] 5. 관심영역 ROI(Region Of Interest)Python/OpenCV 2020. 11. 24. 09:55
ROI는 뜻 그대로 이미지나 영상 내에서 내가 관심있는 부분을 뜻한다. 이미지 상의 특정 오브젝트나 특이점을 찾는 것을 목표로 할 때 쓴다. (비슷한 용어로는 COI(Channel Of Interest)라는 관심 채널이 있다.) 이미지나 영상을 처리할 때 관심영역(ROI)를 지정하는 것은 매우 중요하다. 관심영역을 지정하는 것은 불필요한 영역에 대한 이미지 처리를 방지할 수 있어 여러 리소스를 절약할 수 있다. OpenCV에서는 selectROI 함수와 selectROIs 함수를 이용해 관심영역을 지정할 수 있다. 1. ROI의 평균값으로 이미지 나타내기 import cv2 import numpy as np src = cv2.imread("C:\\Users\\user\\Desktop\\img.jpg") ..
-
[OpenCV 튜토리얼] 4. 마우스 및 트랙바 이벤트 처리Python/OpenCV 2020. 11. 17. 14:40
OpenCV에는 마우스 및 트랙바를 이용해 이벤트를 처리할 수 있는 모듈이 내장되어있다. 간단한 예제로 살펴보자. 1. 마우스 이벤트 import cv2 import numpy as np def on_mouse(event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDOWN: if flags & cv2.EVENT_FLAG_SHIFTKEY: cv2.rectangle(param[0], (x - 5, y - 5), (x + 5, y + 5), (255, 0, 0)) else: cv2.circle(param[0], (x, y), 5, (255, 0, 0), 3) elif event == cv2.EVENT_RBUTTONDOWN: cv2.circle(param[0], ..
-
[OpenCV 튜토리얼] 3. 도형 그리기 및 문자열 출력하기Python/OpenCV 2020. 11. 17. 14:13
OpenCV에는 처리 결과를 영상에 표시하기 위해 다양한 도형을 그리는 함수 및 문자열을 출력하는 합수가 있다. 간단한 예제로 살펴보려 한다. 1. 직선, 사각형 그리기 import cv2 import numpy as np # white background img = np.zeros(shape=(512, 512, 3), dtype=np.uint8) + 255 # black background # img = np.zeros(shape=(512, 512, 3), dtype=np.uint8) p1 = 100, 100 p2 = 400, 400 # rectangle cv2.rectangle(img, p1, p2, (0, 255, 0), 2) # line set cv2.line(img, (0, 0), (500, 0..
-
[OpenCV 튜토리얼] 2. 비디오 캡쳐와 화면 표시Python/OpenCV 2019. 7. 9. 22:39
비디오는 사진의 연속이라는 점을 이해하면 OpenCV의 비디오 출력을 구현하기 수월해진다. 비디오 자체는 압축되어 인코딩 되어있어 다시 디코딩을 해야 하나 하나의 프레임(이미지)을 얻을 수 있다. 프레임은 이미지 한 장과 같으며 프레임이 연속되어 하나의 시퀀스를 만들게 되고 시퀀스가 모여 하나의 영상(비디오)이 된다고 생각하면 될 것 같다. OpenCV에서는 cv2.VideoCapture() 함수로 비디오 파일이나 카메라를 개방하게 되고 cv2.VideoCapture.read() 함수로 프레임 하나 하나를 캡쳐하여 영상으로 처리하게 된다. 기본적인 윈도우 화면에 영상을 띄우는 작업을 구현해보자. 1. 모듈 임포트와 영상의 객체 생성하기 cap1, cap2라는 변수들에 동영상 파일이 있는 경로를 설정해 준..
-
[OpenCV 튜토리얼] 1. OpenCV 영상(이미지) 입출력Python/OpenCV 2019. 6. 17. 14:13
딥러닝이나 컴퓨터 비전을 공부했던 사람이라면 한 번쯤은 들어보고 사용해봤을 OpenCV에 대한 간단한 튜토리얼과 활용을 포스팅하려 한다. 나의 경우, 딥러닝과 의료 영상에 대한 관심으로 의료 인공 지능을 공부하다가 알게 되었고 개인적으로 다른 라이브러리에 비해 사용이 편리했다. OpenCV는 Intel(인텔)에서 개발한 컴퓨터비전 라이브러리로 Window(윈도우), Linux(리눅스)에서 사용할 수 있고 Tensorflow(텐서플로우), PyTorch(파이토치) 등 다양한 딥러닝 프레임 워크를 지원한다. (OpenCV, "위키백과", 2019-06-17, https://ko.wikipedia.org/wiki/OpenCV) 먼저, OpenCV의 영상(이미지) 입, 출력에 대해 알아보도록 한다. 1. Ope..