https://docs.opencv.org/4.5.5/
💡 Mat
- Matrix 클래스 (행 : 이미지 세로, 열 : 이미지 가로)
- OpenCV에서 가장 많이 쓰이는 클래스
#include "mat.hpp"
💡 imread()
- 함수
🌐 매개변수 : filename(파일 경로 및 이름), flags(enum 형태. 1(default, 컬러) or grayscale 등)
- 반환형 : Matrix
💡 imshow()
- 내가 가지고 있는 이미지를 내 모니터에 출력하고 싶을 때
- 함수
🌐 매개변수 : winname, inputArray mat (입력으로 쓰이는 Matrix)
💡 waitKey()
- 명시해놓지 않으면 창(이미지)이 뜨자마자 바로 닫힘
- 창을 유지한 채로 사용자에게 키보드 입력을 받음. 사용자 키보드 응답이 있는 경우, 창이 닫힘.
- 원래 목적은 사용자가 입력한 키보드 값을 return해 사용자가 어떤 키를 눌렀는지 알아오는 것, 실제로는 창이 유지되기 위한 목적으로 쓰임.
🌐 매개변수 : 0(default, 사용자가 입력할 때까지 무한 기다림)ex) 1000 (ms 단위이기에, 1초를 의미함)
💡 imwrite()
- 파일 저장
🌐 매개변수 : String filename(내가 저장할 파일 이름), inputArray img
📌 흑백/축소
💡 cvtColor()
- 색 변경
🌐 매개변수 : InputArray src(Mat 형태), OutputArray dst, int code(enum으로 정의, COLOR_BGR2GRAY : 컬러 ➡ 흑백)
💡 resize()
- 크기 변경
🌐 매개변수 : InputArray src, OutputArray dst, size dsize(내가 원하는 목적 사이즈, 숫자 2개), double fx(가로 비율), double fy(세로 비율), int interpolation = INTER_LINEAR(이미지 사이즈 바뀔 때 들어가야 하는 것, 거의 안 씀)
EX) int interpolation = INTER_LINEAR : 4개짜리 픽셀을 2개로 바꿀 때
📌 이미지 복사
💡 copyTo()
- 이미지 복사 (마스크)
- 함수
void cv::Mat::copyTo(OutputArray m) const
Mat 클래스의 멤버 함수 ❗ Mat object를 표기해줘야 함
OutputArray m : 출력을 위한 Matrix
InputArray가 없는 이유는? copyTo 함수를 호출하는 소수 자체가 입력이 되는 것
ex) A.copyTo(B) : A를 B에 복사해라
📌 이미지 합성
- mask 이미지 생성 → 배경은 검은색
- Bitwise 연산을 써 mask를 만듬
- and / not / or / xor
💡 bitwise_and()
void cv::bitwise_and(InputArray src1, InputArray src2, OutputArray dst, InputArray mask=noArray())
이미지에서 배경인 부분(날릴 부분)은 0이 되어야 함.
그림있는 부분은 1이 되어야 함.
✅ 즉, 모든 곳이 1인 이미지 한 개와 추출할 이미지(0, 1)에서 둘 다 1인 부분만 추출함.
'📚 STUDY > 👀 컴퓨터비전' 카테고리의 다른 글
5. 응용 - 지역 특징을 이용한 특정 물체 인식 (0) | 2025.05.13 |
---|---|
4. 응용 - 특정 물체 인식을 위한 지역 특징 추출 (0) | 2025.05.13 |
3. 응용 - 마커를 이용한 영상 증강 (0) | 2025.05.13 |
1. 개요 (0) | 2025.05.13 |