Run(56)
-
[Computer Vision] 영상 밝기와 명암비 조절 & 필터링
영상 밝기와 명암비 조절 1. 영상 밝기 조절 그레이스케일 영상 cvtColor(): 3채널 컬러 영상 → 그레이스케일 영상 변환. Mat 객체의 색상 정보(channel) 변경할 때 사용 ex. cvtColor(src, dst, COLOR_BGR2GRAY); ConvertTo는 type(channel, bit) 변경, cvtColor는 channel 변경 영상 밝기 조절 입력 영상의 모든 픽셀에 일정 값 더하거나 빼는 작업 수행 (더하면 밝아지고, 빼면 어두워짐) dst(x, y) = src(x, y) + n 한 번 밝기 조절 잘 못하면 일부 정보 날라갈 수 있음, 포화 연산 안하면 급격히 어두워질 수 있음 (ex. 200 + 100 = 300 = 44) 포화(saturate): 원소 자료형이 가질 수..
2023.10.11 -
[Computer Vision] OpenCV 주요 기능
1. 직선 그리기 line() 영상 위에 직선 그리는 함수, cv namespace에 선언되어 있음 line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0) pt1: 시작점 / pt2: 끝점 / shift는 웬만해서 안 씀 [ lineType ] FILLED (-1) 내부를 채움 (직선 그리기 함수에는 사용 불가) LINE_4 (4) 4방향 연결 LINE_8 (8) 8방향 연결 LINE_AA (18) anti-aliasing arrowedLine() 화살표 형태의 직선 그릴 때 사용 arrowedLine(InputOutputArray i..
2023.10.11 -
[Computer Vision] Mat 클래스
1. Mat 클래스 2차원 행렬(이미지) 뿐 아니라 고차원 행렬을 표현할 수 있음 (2차원 영상 데이터가 가장 많음) 하나 이상의 channel 가질 수 있어서 grayscale 또는 color 영상 저장할 수 있음 Mat 클래스에는 정수, 실수, 복소수 등으로 구성된 행렬 or 벡터를 저장할 수 있음 dims(차원), rows(행 개수), cols(열 개수) 멤버 변수 (rows * cols 는 width * height 와 순서 반대!) data(데이터 저장된 메모리 공간 가리킴) 멤버 변수 3차원 이상 행렬에서는 rows, cols 값 -1, 크기 정보는 size 멤버 변수 통해 참조 CV_8U unsigned char CV_8S signed char CV_16U unsigned short CV_1..
2023.10.11 -
[Computer Vision] 기본 자료형 클래스
Point_ 픽셀의 좌표 표현 Size_ 사각형 영역의 크기 표현 Vec, Scalar 벡터 값 저장 Rect_ 사각형의 위치, 크기 정보 표현 RotatedRect 회전된 사각형 표현 1. Point_ 클래스 2차원 평면 위에 있는 점의 좌표 표현하는 템플릿 클래스 x, y 멤버 변수 가짐 어떤 자료형으로 좌표 표현할 것인지 명시해야 함 Point_ Point2i Point_ Point2l Point_ Point2f Point_ Point2d Point2i Point (Point2i는 Point 클래스로 재정의됨) 다양한 연산자에 대해 연산자 재정의 되어 있어 좌표 연산 수행 가능 (+, -, *, dot(), ==, ...) 2. Size_ 클래스 영상 또는 사각형 영역 크기 표현할 때 사용 widt..
2023.10.11 -
[Computer Vision] OpenCV 개요 및 설치
OpenCV 개요 OpenCV는 C/C++ 으로 작성되었지만 현재 Python, Java, Matlab, JavaScript 등 인터페이스 제공함 일부 OpenCV 기능은 병렬 처리로도 동작함 MMX, SSE, AVX, NEON 등 CPU 특화 명령어 지원함 오래전부터 CUDA와 OpenCL을 통한 GPU 활용 지원함 OpenCV 라이브러리는 BSD 라이선스를 따르므로 학계 연구용이나 상업적 용도로 자유롭게 사용 가능함 OpenCV 역사 1999년 Intel에서 개발된 IPL(Image Primitive Library)을 기반으로 만들어지기 시작 2000년 일반에 공개되어 오픈소스로서 개발 진행됨 2006년 OpenCV 1.0 버전 정식 배포 C언어 기반 구현 많은 CV 알고리즘이 구조체와 함수로 구현 ..
2023.10.11 -
[Computer Vision] 컴퓨터 비전과 영상의 이해
1. 컴퓨터 비전 개요 컴퓨터 비전 (Computer Vision) 컴퓨터를 이용하여 정지 영상 또는 동영상으로부터 의미 있는 정보 추출하는 방법 연구하는 학문 사람이 눈으로 사물을 보고 인지하는 작업을 컴퓨터가 동등하게 수행할 수 있게끔 하는 학문 사람의 눈이 하는 작업을 카메라가 대신하고, 사람의 뇌가 하는 작업을 알고리즘을 통해 컴퓨터가 유사하게 수행하도록 전통적인 CV 문제 해결 방법에서는 영상으로부터 유용한 정보 추출하고, 이를 조합해 결과 유추 CV에서 주로 활용하는 영상 정보: 밝기, 색상, 모양, 텍스쳐, ... 이 정보와 ML 알고리즘을 함께 사용하여 사물을 인지할 수 있음 영상 데이터에는 다양한 변형 가해질 수 있으므로 여러 방식으로 추출한 영상 정보를 복합적으로 사용해야 함 CV와 더..
2023.10.11