OpenCV Mat 클래스 구조와 메모리 이해
Mat 클래스란 무엇인가요?OpenCV에서 Mat은 이미지 데이터를 저장하는 핵심 클래스예요.말 그대로 ‘매트릭스(Matrix)’의 줄임말로,사진이나 영상은 결국 수많은 픽셀 값들이 모여 있는 2차원 배열이기 때문에 Mat으로 표현할 수 있어요. 단순히 사진뿐만 아니라, 그레이스케일 이미지, 마스크 이미지, 필터 결과까지도 다 Mat 객체에 저장된다고 보면 됩니다. Mat의 구조: 데이터 + 정보Mat 객체는 크게 두 가지로 나눠볼 수 있어요.하나는 픽셀 데이터 자체, 다른 하나는 데이터에 대한 정보(header)예요.이 header에는 이미지의 크기(rows, cols), 채널 수, 데이터 타입(CV_8UC3 등), 참조 횟수(refcount) 같은 정보가 들어 있어요.중요한 점은, OpenCV는 ..
더보기
OpenCV Scalar 클래스 활용법!
Scalar 클래스란 무엇인가?OpenCV에서 Scalar 클래스는 이미지의 픽셀 값을 표현하거나 그리기 함수에서 색상을 지정할 때 사용되는 데이터 타입입니다.일반적으로 cv::Scalar(b, g, r) 형태로 사용되며, 각 값은 Blue, Green, Red 순서의 8비트 정수입니다. 즉, RGB가 아닌 BGR 순서로 입력해야 원하는 색상이 출력됩니다.색상뿐만 아니라 마스크나 threshold의 임계값, 픽셀 연산 등 다양한 곳에서 활용됩니다. cv::Scalar white(255, 255, 255); // 흰색 cv::Scalar blue(255, 0, 0); // 파란색 (BGR 순서) Scalar를 사용하는 대표적인 함수들Scalar는 주로 그리기 함수에서 색상 값을 전달할 때 ..
더보기
OpenCV Rect 클래스 완전 정복
Rect 클래스란 무엇인가?OpenCV에서 Rect는 사각형 영역(Region of Interest, ROI)을 정의할 때 사용되는 핵심 클래스입니다.주로 이미지의 특정 영역을 선택하거나 처리할 때 활용되며, (x, y, width, height) 형식으로 구성됩니다. 여기서 (x, y)는 좌상단 꼭짓점의 좌표를 의미하고, width, height는 사각형의 가로, 세로 길이를 나타냅니다.이미지에서 특정 영역을 잘라내거나, 객체를 감싸는 바운딩 박스를 정의할 때 매우 자주 사용됩니다. cv::Rect rect(10, 20, 100, 50); // x=10, y=20, width=100, height=50 주요 생성자와 멤버 변수Rect 객체는 다양한 방식으로 생성이 가능합니다.가장 일반적인 방법은..
더보기