본문 바로가기

난 이 분야 전문가야!/OpenCV

OpenCV :: Mat Class 사용법 정리 (생성 및 기본연산, C++) // 1 Mat m1(3, 3, CV_32F); // 32bit float형 3x3 행렬 // 2 Mat m2; m2 = Mat(5, 3, CV_64FC2); // 64bit float형 5x3 행렬 channel 수는 2 // 3 동적할당으로 생성 Mat* m3 = new Mat(Size(640, 480), CV_8UC3); // 480x640 해상도의 컬러이미지(3 channel) delete m3; 1 ) m1 행렬의 경우 32bit float형의 3행 3열 행렬이 생성된다. 2 ) m2 행렬의 경우 64bit float형의 5행 3열 채널 수는 2인 행렬이 생성된다. (총 원소의 개수는 5 x 3 x 2로 30개) 3 ) m3 행렬의 경우 동적할당으로 생성했으.. 더보기
Silicon Mac(M1)에서 OpenCV C++ 개발환경 설정 정리 (Xcode) home brew(https://brew.sh/)와 Git이 설치되어 있다는 가정하에 진행합니다. '::' 뒤는 터미널 명령어 뒤에 [숫자]가 붙은 폴더는 경로를 기억해주세요. 폴더명을 [숫자]로 간략하게 표현하겠습니다. cmake 설치 :: brew install cmake OpenCV 라이브러리 설치 설치할 폴더 생성[1] (원하는 곳에 생성 - 저의 경우 ~/opt/open_cv 이름으로 생성했습니다.) :: git clone https://github.com/opencv/opencv.git (reference: https://github.com/opencv/opencv) [1]에 build 폴더[2] 생성 (그럼 [1]에 opencv, build 이름의 두개의 폴더가 생성되어 있을겁니다.) [2].. 더보기
컴퓨터비전인강 4주차 :: 영상의 변환 Ch 05. 기하학적 변환 - 02. 영상의 확대와 축소 Ch 05. 기하학적 변환 - 03. 이미지 피라미드 Ch 05. 기하학적 변환 - 04. 영상의 회전 오늘은 오랜만에 카페에 와서 공부했습니다. 집 근처에 카페가 리모델링하고 더 좋아졌더라고요. 이번 강의에서는 영상의 크기 변환과 회전 변환에 대해서 배워보았습니다^^ 영상의 크기 변환(Scale transformation) 영상의 크기를 원본 영상보다 크게 또는 작게 만드는 변환 openCV에서 이미 영상의 크기를 변환해주는 함수를 제공해줌 cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None) -> dst dsize: 결과 영상 크기를 튜플 형태로 입력 (w, h), (0,.. 더보기
컴퓨터비전인강 4주차 :: 영상에서 특정 색상 추출 Ch 03. 기본적인 영상 처리 기법 - 07. 특정 색상 영역 추출하기 Ch 03. 기본적인 영상 처리 기법 - 08. 히스토그램 역투영 Ch 05. 기하학적 변환 - 01. 영상의 이동 변환과 전단 변환 오늘은 영상에서 특정 색상을 검출해 내는 방법과 영상의 변환에 대해서 공부해 보았습니다. 현재 AR 관한 프로젝트를 같이 진행하고 있는 사람으로서 영상의 변환 행렬 계산 쪽을 더 빨리 공부하고 싶다는 생각으로 ch4를 건너뛰게 됐네요..ㅎㅎ RGB 색 공간에서 색 추출하기 mask 영상: 특정 부분(목표)을 흰색으로 나머지를 검은색으로 하는 이진 영상 RGB 색공간에서 녹색 추출하기 0 < R < 100 128 < G < 255 0 dst lowerb와 upperb 에는 하한 값과 상한 값의 ndar.. 더보기
컴퓨터비전인강 3주차:: 영상에서의 히스토그램 Ch 03. 기본적인 영상 처리 기법 - 04. 히스토그램 분석 Ch 03. 기본적인 영상 처리 기법 - 05. 영상의 명암비 조절 Ch 03. 기본적인 영상 처리 기법 - 06. 히스토그램 평활화 Ch 04. 필터링 - 01. 필터링 이해하기 오늘의 영상에서의 히스토그램이 어떻게 사용되는지 영상에서의 히스토그램 연산법으로 어떤 변화가 생기는 지에 대해 공부해 보았습니다. >> 영상에서의 히스토그램 각각의 값에 해당하는 픽셀을 시각화 해서 표시해논 그래프 >> 정규화된 히스토그램 작은 크기의 영상과 큰 크기의 영상을 비교할 때 애매한 경우가 생김 이 히스토그램을 봤을 때 영상에서 어느 정도의 밝기로 구성이 되어있다는 것을 파악할 수 있다. 왼쪽에서부터 0으로 시작하여 가장 오른쪽의 값은 255이다. 그렇.. 더보기
컴퓨터비전인강 3주차 :: 영상에서의 산술과 다양한 색 공간 Ch 03. 기본적인 영상 처리 기법 - 01. 영상의 밝기 조절 Ch 03. 기본적인 영상 처리 기법 - 02. 영상의 산술 및 논리 연산 Ch 03. 기본적인 영상 처리 기법 - 03. 컬러 영상 처리와 색 공간 오늘도 어김없이 컴퓨터비전 인강을 들으며 지식을 늘려보았습니다. 이제 개강도 하고 그래서 더 바빠진거 같은데 공부를 빼먹지 않도록 열심히 해야겠네요ㅜ 학생분들 모두 화이팅입니다! 이번에는 영상에서의 산술 및 논리 연산으로 영상이 어떻게 변하고 어떤 특징을 잡아낼 수 있는지 그리고 여러가지 색 공간과 표현법에 대해 배워 보았습니다. >> 연산 시간 측정 방법 컴퓨터 비전에서는 대용량인 영상 데이터를 다루다 보니 연산 시간을 측정하여 관리할 필요가 있다. cv2.TickMeter() class를.. 더보기
컴퓨터비전인강 2주차 :: 키보드, 마우스 이벤트 처리 및 트랙바 생성법 Ch 02. OpenCV-Python 기초 사용법 - 07. 키보드 이벤트 처리하기 Ch 02. OpenCV-Python 기초 사용법 - 08. 마우스 이벤트 처리하기 Ch 02. OpenCV-Python 기초 사용법 - 09. 트랙바 사용하기 오늘은 openCV를 사용하여 윈도우창에서 발생하는 키보드, 마우스 이벤트를 처리하는 방법과 추가적으로 트랙바를 생성하는법에 대해서 공부해 보았습니다. >> 키보드 이벤트 처리하기 cv2.waitKey(delay=None) -> retval delay: 밀리초 단위 대기 시간. delay 키보드 이벤트 처리 예제 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 img = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE).. 더보기
컴퓨터비전인강 2주차 :: openCV 웹캠, 비디오 재생 및 저장 Ch 02. OpenCV-Python 기초 사용법 - 04. OpenCV 그리기 함수 Ch 02. OpenCV-Python 기초 사용법 - 05. 카메라와 동영상 처리하기 1 Ch 02. OpenCV-Python 기초 사용법 - 06. 카메라와 동영상 처리하기 2 오늘은 openCV에서 영상 위에 선이나, 도형, 문자를 그리는 기능과 카메라와 동영상을 어떻게 불러오고 저장하는지에 대해 공부해 보았습니다. >> openCV 그리기 함수 openCV는 영상에 선, 도형, 문자열을 그리는 함수를 제공한다. 그리기 함수를 사용할 경우 영상 데이터 자체를 변경하기 때문에 원본데이터를 유지하고 싶다면 복사본을 만든 후 복사본 위에 그리기를 실행해야 한다. cv2.line(img, pt1, pt2, color, th.. 더보기

728x90