Python
-
[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..
-
4-2. Python 기본 문법 (산술, 비교, 논리 연산)Python/Basic 2019. 4. 2. 19:10
4.2. Python 기본 문법 (산술, 비교, 논리 연산) 파이썬에서는 산술, 비교, 할당, 비트, 논리 연산자가 제공되어 사용할 수 있다. 1. 산술 연산 덧셈: + 뺄셈: - 곱셈: * 나누기: / (소수점 포함), // (소수점 제거) 나머지: % 제곱: ** 결과 확인 2. 비교 연산 관계 연산자는 참과 거짓인 True와 False로 값을 반환한다. 관계 연산자 의미 A > B A가 B보다 크다. A >= B A가 B보다 크거나 같다. A == B A와 B가 같다. A != B A와 B는 다르다. 결과 확인 3. 논리 연산 논리 연산은 Boolean값을 입력받아 연산 결과를 True나 False로 반환해준다. 3-1 and: 논리 연산에서는 곱의 연산이다. 모두 참일때만 참을 뜻한다. 입력 값 ..
-
4-1. Python 기본 문법 (변수와 자료형)Python/Basic 2019. 3. 27. 23:24
4-1. Python 기본 문법 (변수와 자료형) 1. 변수 프로그래밍 언어를 배울 때 가장 기초가 되면서도 중요한 "변수"라는 개념이 있다. 변수는 '변할 수 있는 값 또는 정보'란 뜻으로, 프로그램을 할 때 특정 숫자나 문자를 담아두는 공간이라 생각할 수 있다. 일반적으로, 변수(상자)에 특정 값을 할당하면(담으면) 그 값은 계속 수정 가능하다. 이해가기 쉽게 var이라는 변수 안에 값인 5를 담는 것으로 표현했지만 실제로 변수는 5라는 값이 있는 메모리를 가리킨다고 볼 수 있다. 변수명을 정할 때는 1) 영문자나 _(언더스코어)로 시작해야 한다. 2) 대문자와 소문자는 구분되어 다른 변수로 저장된다. ex. Python과 python은 다른 변수다. 3) 파이썬의 예약어로 사용되는 이름은 변수로 사..
-
3. Python 사용법Python/Basic 2019. 3. 26. 23:37
3. Python 사용법 이번 포스팅에서는 파이썬을 사용하는 방법에 대해 설명해보려 한다. 1. Python IDLE(Integrated Development and Learning Environment) 파이썬 설치시 같이 설치되는 프로그램으로 처음 파이썬이 어떤 언어인지 경험할 떄 사용해보면 좋다. 1-1키보드의 윈도우키 + 키보드 R키를 눌러 실행창을 켜고 IDLE를 입력한다. 1-2처음 실행시 작동되는 프로그램의 이름을 보면 Python 3.x.x Shell 이라고 적혀있는 걸 볼 수있다.Shell은 IDLE를 이용하는 방법 두 가지 중 하나로, 파이썬과 대화하는 형식으로 한 줄씩 입력하면 바로 출력값이 보인다.파이썬과 대화를 하는 것처럼 주고 받는 느낌으로 파이썬을 이용해 볼 수 있다. 1-3I..