Language - Python(Opencv) 48

Python Opencv - #6 Draw 함수

▶ Opencv 뿐만 아니라 다양한 Machine Vision 라이브러리에서 Labeling 할 때, 기본적인 개념을 이 포스팅에서 알아두면 좋을 거 같습니다. → Opencv 에서 Draw 함수 사용 시, 주의해야 할 점은 gray 영상에선 사용이 안되며 cvtColor 함수로 Color 영상으로 이미지 변환 후, 그리기 함수를 호출해야 됨 ■ Draw 함수 종류들 line : cv2.line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None) -> img Rectangle : cv2.rectangle(img, rec, color, thickness=None, lineType=None, shift=None) -> img Circle : c..

Python Opencv - #5 Mask 연산과 R.O.I

▶ R.O.I (Region Of Interest)는 관심 영역이라는 뜻이며, Mask 연산은 픽셀 값이 0이 아닌 영역에서만 연산을 함 (Masking은 실무에서 불필요한 영역 또는 노이즈가 자주 발생하는 구간에서 특정 구간을 Masking 처리함) • 마스크 영상은 cv2.CV_8UC1 타입(그레이스케일 영상) • 마스크 영상의 픽셀 값이 0이 아닌 위치에서만 연산이 수행됨 (보통 마스크 영상으로는 0 또는 255로 구성된 이진 영상(binary image)을 사용) → Function : cv2.copyto(src, mask, dst=None) = Result(dst) src : 입력 영상 mask : mask 영상, cv2.CV_8U 즉, 0이 아닌 픽셀 영역만 연산을 수행 dst : 출력 영상 ..

Python Opencv - #4 영상의 생성, 복사, 부분 영상 추출

▶ 지정한 크기로 새로운 영상 생성 → 이전 글에서 설명 했듯이 영상의 type은 numpy.ndarray이므로 numpy를 이용한 이미지 생성의 4가지 방법이다. ▪ numpy.empty() 함수는 임의의 값으로 초기화된 배열을 생성 ▪ numpy.zeros() 함수는 0으로 초기화된 배열을 생성 ▪ numpy.ones() 함수는 1로 초기화된 배열을 생성 ▪ numpy.full() 함수는 fill_value로 초기화된 배열을 생성 ▶ 영상의 참조 및 복사 → 영상의 참조 및 복사는 Shallow copy와 Deep Copy가 있다. (Shallow Copy - 얕은 복사, Deep Copy - 깊은 복사로 개념은 구글링해서 찾으면 충분히 나옵니다.) copy — 얕은 복사와 깊은 복사 연산 — Pyt..

Python Opencv - #3 영상의 속성과 픽셀 값 참조

▶ 영상 데이터의 표현 방식과 자료형 → Opencv는 영상 데이터를 numpy.ndarray로 표현되며 4가지의 속성을 가지고 있다. ndim : 차원 수, len(image.shape)와 동일 shape : 각 차원의 크기. (h,w) 또는 (h,w,3) 이며 너비 - 높이 - 채널 수를 뜻함 size : Image 전체 원소 개수 dtype :원소의 데이터 타입 즉, uint8과 같은 타입을 뜻함 위 내용을 정리하면, cv2.CV_8UC1는 shpae은 (h,w) 이고, 8UC3은 (h,w,3) 이다 (C1 - Gray Scale, C3 - Color) 영상의 속성 참조 확인 Code import sys import cv2 img1 = cv2.imread('cat.bmp', cv2.IMREAD_GR..

Python Opencv - #2 Image Slide Show

▶ Slide Show 구현은 폴더 내 다수의 Image 저장 후 while문 돌면서 1개씩 Image Show 해주는 방식 import sys import glob import cv2 # 이미지 파일을 모두 img_files 리스트에 추가 # 특정 패턴의 문자열에 있는 파일들을 모두 불러옴 (.jpg) img_files = glob.glob('.\\images\\*.jpg') # os.listdir 이용 시,,, file_list = os.listdir('.\\images') # jpg로 되어 있는 파일 모두를 불러옴 img_files = [file for file in file_list if file.endwith('.jpg')] # if not img_files: print("There are no..

Python - Opencv 기본 설정

Python Opencv tistory 정리는 패스트 캠퍼스 황선규박사님 강의를 기반으로 개인적으로 공부한 내용들을 복습 하는 개념으로 정리하려고 합니다. → 동일한 강의를 잘 정리한 블로그도 참고 했습니다. (강의 외에도 cv, ml, dl에도 도움 되는 블로그) ▶ https://deep-learning-study.tistory.com// 이번 글에서는 인강에 대한 내용을 적기 전에, 기본적인 개념이나 설치 해야 되는 부분들을 간략하게 적어두려고 합니다. 우선 CV란 Computer Vision의 약어로 컴퓨터를 이용하여 정지 영상 or 동영상으로부터 정보를 추출하는 방법을 뜻함. CV의 응용 분야는 실무에서 하고 있는 Machine Vision과 ML/DL/AI 등 다양한 산업에서 활용 되고 있습니..

Python - 기하학적인 이미지 변환

▶ Language : Python ▶ IDE : Visual Studio Code (VS Code) import cv2 import numpy as np windowsName = "scanning" img = cv2.imread("Transform.png") rows, cols = img.shape[:2] draw = img.copy() ptsCnt = 0 pts = np.zeros((4,2), dtype=np.float32) def onMouse(event, x, y, flags, param): # 마우스로 찍은 좌표의 갯수 저장, 전역 변수 선언 global ptsCnt if event == cv2.EVENT_LBUTTONDOWN: cv2.circle(draw, (x,y), 10, (0,255,0)..