본문 바로가기

컴퓨터 비전4

영상의 산술 및 논리 연산 1. 영상의 산술 연산 영상은 2차원 행렬이기 때문에 산술 연산을 그대로 적용 가능 -> 두개의 연산을 더하거나 빼는 연산을 통해 새로운 결과 영상 생성 가능! (But, 곱하거나 나누는 연산은 거의 사용 x) ① 덧셈 연산 dst(x,y) = src1(x,y) + src2(x,y) //덧셈 연산(두개의 입력 영상에서 같은 위치 픽셀 값을 서로 더하여 결과 영상 픽셀값으로 설정) dst(x,y) = saturate(src1(x,y) + src2(x,y)) //그레이스케일 최댓값(255)로 설정하는 포화연산 수행 void add(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray(), int dtype = -1); //d.. 2020. 2. 25.
OpenCV 주요 기능 1. 카메라 & 동영상 파일 다루기 ① VideoCapture 클래스 하나의 클래스를 이용해 카메라 또는 동영상 파일로부터 정지 영상 프레임을 받아올 수 있음 모든 멤버 변수는 protected 모드로 선언 -> 사용자가 직접 접근 불가 apiPreference 인자에는 동영상 파일을 불러오는 방법 지정 VideoCapture::VideoCapture(const String& filename, int apiPreference = CAP_ANY); bool VideoCpature::open(const String& filename, int apiPreference = CAP_ANY); //filename = 동영상 파일 이름, apiPreference = 사용할 비디오 캡쳐 API 백엔드 //반환값 = 열.. 2020. 2. 14.
OpenCV 주요 클래스 1. 기본 자료형 클래스 ①Point_ 클래스 2차원 평면 위에 있는 점의 좌표를 표현하는 템플릿 클래스 x, y의 두 멤버 변수 2차원 정수 좌표계에서 좌표를 표현하는 자료형 Point pt1; //pt1=(0,0) pt1.x = 5; pt1.y = 10; //pt1=(5,10) Point pt2(10,30); //pt2 = (10,30) Point pt3 = pt1 + pt2; //pt3=(15,40) Point pt4 = pt1 + 2; //pt4=(10,20) int d1 = pt1.dot(pt2); //d1=350 bool b1 = (pt1 == pt2) //b1=false ②Size_ 클래스 영상 또는 사각형 영역의 크기 표현 width, height의 두 정수형 멤버 변수 Size sz1, .. 2020. 2. 12.
openCV를 사용한 영상의 밝기와 명암비 조절 행렬의 덧셈과 뺄셈으로 간단하게 영상의 밝기 조절 가능 openCV에서 제공하는 영상의 밝기 조절 사용자가 직접 영상의 픽셀 값을 참조하여 밝기 조절 트랙바를 이용하여 실시간으로 밝기 조절 ▶그레이스케일 영상 Why 그레이? ->과거에 개발되었던 많은 영상 처리 알고리즘이 주로 그레이스케일 영상을 대상으로! ->컬러영상의 경우 R,G,B로 이루어져 그레이 스케일보다 3배의 메모리와 연산시간이 필요 º 그레이스케일 형태의 Mat 객체를 생성하는 3가지 방법 ①imread 두번째 인자에 IMREAD_GRAYSCALE Mat img1 = imread("lenna.bmp", IMREAD_GRAYSCALE); ②cvtColor() 함수 사용 Mat img3 = imread("minjin.bmp", IMREAD_C.. 2020. 2. 9.