[C++][OpenCV] 이미지 크기, 생성

παντοκράτωρ·2021년 7월 23일

OpenCV

목록 보기
3/5

이미지 크기

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main() {

	// 이미지 입력
	Mat img = imread("Lenna.png");

	// 이미지 크기 데이터 가져오기
	Size size = img.size();

	cout << size.height << endl;
	cout << size.width << endl;

	// 이미지 출력
	imshow("Lenna", img);

	// 키 입력을 받을 때까지 유지
	waitKey();

	return 0;
}

이미지 생성

이미지는 MAT 생성자 이용해 생성한다.

MAT 생성자를 이용해 이미지를 생성할 때 필수적인 두 가지 요소는 이미지 사이즈이미지 타입이다.

#include <opencv2/opencv.hpp>

using namespace cv;

int main() {

	// 이미지 입력
	Mat src = imread("Lenna.png");

	// 이미지 크기 데이터 가져오기
	Size size = src.size();

	// 입력 이미지와 동일한 크기로 이미지 생성
	Mat dst = Mat(size, CV_8UC3); // size : 이미지 크기, CV_8UC3 : 이미지 타입

	// 생성 시 이미지 초기 바탕색 설정
	// Mat dst = Mat(size, CV_8UC3, Scalar(255, 255, 255));

	// 생성 시 Size 대신 height, width를 사용
	// Mat dst = Mat(size.height, size.width, CV_8UC3);

	// 이미지 출력
	imshow("Lenna", dst);

	// 키 입력을 받을 때까지 유지
	waitKey();

	return 0;
}

예상했듯이 최소한만 들어있는 이미지이다.

Mat Type

이미지 생성 시에 설정하는 타입으로 대체적으로 CV_8UC3을 사용한다.

CV_8UC3의 뜻은 각 비트가 Unsigned 8bits(0~255)로 이루어져 있고, Channel이 3(즉, RGB를 의미한다. 예를 들어, Channel이 1이면 흑백이다.)이라는 의미이다.

자세한 내용은 아래 이미지를 참고하기를 바란다.

0개의 댓글