영상처리
OpenCV resize C++
park__
2024. 12. 13. 17:11
1. resize 함수
void cv::resize(
InputArray src, // 입력 이미지
OutputArray dst, // 출력 이미지
Size dsize, // 출력 이미지 크기 (가로, 세로)
double fx = 0, // x축 스케일 비율 (선택 사항)
double fy = 0, // y축 스케일 비율 (선택 사항)
int interpolation = INTER_LINEAR // 보간법 (기본값: 선형 보간)
);
- src: 입력 이미지.
- dst: 크기 조정 후 출력 이미지.
- dsize: 결과 이미지의 크기. Size(width, height) 형식.
- fx, fy: 각각 가로(x), 세로(y)의 스케일 비율. dsize가 지정되면 무시됩니다.
- interpolation: 보간법. 이미지 품질을 결정합니다.
- cv::INTER_NEAREST: 최근접 이웃 보간 (빠르지만 품질 낮음).
- cv::INTER_LINEAR: 선형 보간 (기본값, 일반적인 경우 사용).
- cv::INTER_CUBIC: 4x4 픽셀 영역을 사용하는 3차 보간 (품질 높음).
- cv::INTER_LANCZOS4: 8x8 픽셀 영역을 사용하는 Lanczos 보간 (최고 품질).
2. 예시 코드
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
// 이미지 로드
Mat image = imread(file_path);
if (image.empty()) {
cout << "이미지를 불러올 수 없습니다." << endl;
return -1;
}
// 크기 조정
Mat resizedImage;
Size newSize(300, 200); // 새로운 크기: 가로 300, 세로 200
resize(image, resizedImage, newSize, 0, 0, INTER_LINEAR);
// 결과 표시
imshow("Original Image", image);
imshow("Resized Image", resizedImage);
waitKey(0);
return 0;
}