본문 바로가기
728x90

OpenCV/OpenCV-Chapter31

CH03 Opencv-Python Histogram backprojection 히스토그램 역투영(Histogram backprojection) * 영상의 각 픽셀이 주어진 히스토그램 모델에 얼마나 일치하는지를 검사하는 방법 * 임의의 색상 영역을 검출할 때 효과적 * 확률론적 의미를 가지고 있음(역투영 이미지) cv2.calcBackProject(images, channels, hist, ranges, scale, dst=None) -> dst import cv2 import sys import matplotlib.pyplot as plt src = cv2.imread('ch03\\images\\cropland.png') if src is None: print('Image load failed') sys.exit() # ROI 창 생성(드래그 할 수 있음) / spacebar 누르.. 2021. 12. 18.
CH03 Opencv-Python Histogram, Contrast Histogram - 영상의 픽셀 값 분포(= 픽셀의 개수 Counting) 예를 들어 그레이스케일 영상에서 각 그레이스케일 값에 해당하는 픽셀의 개수를 구하고, 이를 막대 그래프의 형태로 표현 Histogram normalized(영상의 자동 명암비 조절) Histogram Stretching 영상의 히스토그램이 그레이스케일 전 구간에서 걸쳐 나타나도록 변경하는 선형 변환 기법 - 단순히 픽셀 개수를 GrayScale 값이 몇개 있다 counting하게 되면 이 영상이 작은 영상일 때와 큰 영상일때의 값을 비교하기가 애매(size를 normalized 할때도 있음) 각 픽셀의 개수를 영상 전체 픽셀 개수로 나누어준 것 해당 그레이스케일 값을 갖는 픽셀이 나타날 확률 영상과 히스토그램의 관계 cv2.ca.. 2021. 12. 18.
CH03 Opencv-Python 영상 처리 기법(화소, 연산) 영상의 화소 처리 기법 화소 처리(Point processing) 입력 영상의 특정 좌표 픽셀 값을 변경하여 출력 영상의 해당 좌표 픽셀 값으로 설정하는 연산 f1 : 항등함수(반전) f2 : 영상의 밝기 조절(픽셀값 조절) f3 : 0 or 255 이진영상으로 변환 영상의 밝기 조절 cv2.add(src1, src2, dst=None, mask=None, dtype=None) -> dst ''' src1: (입력) 첫 번째 영상 또는 스칼라 src2: (입력) 두 번째 영상 또는 스칼라 dst: (출력) 덧셈 연산의 결과 영상 mask: 마스크 영상, 픽셀값이 0이 아닌 부분에 대해서만 덧셈 연산이 된다 dtype: 출력 영상(dst)의 타입. (e.g.) cv2.CV_8U, cv2.CV_32F 등 '.. 2021. 12. 18.
CH02 OpenCV-Python 기초(도형그리기) import numpy as np import cv2 img = np.full((400, 400, 3), 255, np.uint8) cv2.line(img, (50, 50), (200, 50), (0, 0, 255), 5) cv2.line(img, (50, 60), (150, 160), (0, 0, 128)) ## ( x, y, w, h) = x, y 꼭지점으로부터 (x+w), (y+h) cv2.rectangle(img, (50, 200, 150, 100), (0, 255, 0), 2) cv2.rectangle(img, (70, 220), (180, 280), (0, 128, 0), -1) cv2.circle(img, (300, 100), 30, (255, 255, 0), -1, cv2.LINE_AA) .. 2021. 12. 18.
CH02 OpenCV-Python 기초(imread, mask,ROI) OpenCV는 영상 데이터를 numpy.ndarray로 표현 img1 = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE) img2 = cv2.imread('cat.bmp', cv2.IMREAD_COLOR) img1, img2 = np.ndarray ndim: 차원 수. len(img.shape)과 같음. shape: 각 차원의 크기. (h, w)= gray 또는 (h, w, 3) = color size: 전체 원소 개수 dtype: 원소의 데이터 타입. 영상 데이터는 uint8. 그레이스케일 영상: cv2.CV_8UC1 → numpy.uint8, shape = (h, w) 컬러 영상: cv2.CV_8UC3 → numpy.uint8, shape = (h, w, 3) 영상생성 .. 2021. 12. 18.
CH01 OpenCV-Python(Image? OpenCV?) 영상(image)이란? • 픽셀(pixel)이 바둑판 모양의 격자에 나열되어 있는 형태 (2차원 행렬) • 픽셀: 영상의 기본 단위, picture element, 화소(畵素) 그레이스케일(grayscale) 영상( 1byte ) • 흑백 사진처럼 색상 정보가 없이 오직 밝기 정보만으로 구성된 영상 • 밝기 정보를 256 단계로 표현 • Pixel 프로그래밍 값(표현방법) = np.uint8 - 총 256개의 구간으로 밝기를 나누고 해당 밝기에 매칭 되는 구간의 정보를 데이터로 저장하는것을 "양자화" 라고 부른다. Y = 0.299R + 0.587G + 0.114B RGB 영상을 GrayScale로 변환?? 장점: 저장용량 ↓, 처리속도↑ 단점: 색상정보 상실 so, Color 정보가 중요할 때는 진행 .. 2021. 12. 18.
CH01 OpenCV-Python(Computer Vision) 황선규 박사님의 패스트 캠퍼스 OpenCV 강의 공부한 내용을 정리해 보았습니다. OpenCV OpenCV는 Open Source Computer Vision Library OpenCV를 활용하여 물체인식, 얼굴인식, 제스처 인식을 비롯하여 자율 주행 자동차, OCR 판독기, 불량검사기 등에 활용 OpenCV는 영상 처리가 들어가는 프로그램이라면 가히 필수적으로 사용하게 되는 라이브러리 *프로젝트 주의사항 제작할 프로그램 설계를 효율적으로 진행하고 완성하기 위한 작업의 첫 걸음은 프로그램이 어떤 목적을 가지고 어떤 역할을 할지 정확하게 파악하는 것 =이것은 카메라의 성능의 선택과 알고리즘의 구성 선택에 필연적인 영향을 미친다. so, 프로그램의 목적을 정확히 파악하고 영상 처리에 필요한 적합한 하드웨어와.. 2021. 12. 18.
728x90