[opencv] letterbox image
letterbox란 원래 우편함을 뜻하는 말인데, 영상처리 분야에서는 일정한 Aspect ratios 를 가지게 한다는 뜻이다.
즉, 원래의 종횡비가 원하는 종횡비가 아닐 경우 pad를 채워 넣는 방식이다.
위와 같이 다양한 해상도의 이미지를 기존의 종횡비를 깨지 않고 정방이미지(또는 원하는 종횡비) 로 변경한다.
주로 정방이미지를 입력으로 받는 Image classification 등에서 사용한다.
아래는 OpenCV로 구현한 lettterbox 코드 이다.
cv::Mat letterbox(const cv::Mat& src, uchar pad) {
int N = std::max(src.cols, src.rows);
cv::Mat dst = cv::Mat::zeros(N, N, CV_8UC(src.channels()))
+ cv::Scalar(pad, pad, pad, 0);
int dx = (N - src.cols) / 2;
int dy = (N - src.rows) / 2;
src.copyTo(dst(cv::Rect(dx, dy, src.cols, src.rows)));
return dst;
}
Author And Source
이 문제에 관하여([opencv] letterbox image), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@springkim/opencv-letterbox-image저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)