函数介绍
C++ OpenCV中的resize函数用于调整图像的大小。它可以根据指定的尺寸和插值方法对图像进行缩放。函数原型如下:
void cv::resize(InputArray src, OutputArray dst, Size size, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR);
参数说明:文章来源:https://www.toymoban.com/news/detail-847830.html
-
src
:输入图像,通常为cv::Mat
类型。 -
dst
:输出图像,与输入图像具有相同的类型。 -
size
:目标图像的尺寸,表示为(width, height)
。 -
fx
:沿水平轴的缩放因子,默认为0,表示不进行水平缩放。 -
fy
:沿垂直轴的缩放因子,默认为0,表示不进行垂直缩放。 -
interpolation
:插值方法,有以下几种可选:-
cv::INTER_NEAREST
:最近邻插值,速度最快,但质量最差。 -
cv::INTER_LINEAR
:线性插值,速度较快,质量较好。 -
cv::INTER_AREA
:区域插值,适用于图像缩小,速度较慢,质量最好。 -
cv::INTER_CUBIC
:三次样条插值,速度适中,质量较好。 -
cv::INTER_LANCZOS4
:Lanczos插值,速度适中,质量较好。
-
使用案例
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
// 读取原始图像
Mat src = imread("./3480e7ce_mk_tk_a_c2_6400_4480.png", IMREAD_GRAYSCALE);
if (src.empty())
{
cout << "无法读取图像" << endl;
return -1;
}
imshow("src", src);
waitKey(0);
// 放大2倍
Mat dst;
resize(src, dst, Size(src.cols * 2, src.rows * 2), 0, 0, INTER_LINEAR);
imshow("2x INTER_LINEAR", dst);
waitKey(0);
// 缩小2倍
resize(src, dst, Size(), 0.5, 0.5, INTER_LANCZOS4);
imshow("0.5x INTER_LANCZOS4", dst);
waitKey(0);
return 0;
}
总结
C++ OpenCV中的resize函数是一个非常实用的图像处理函数,它可以帮助我们轻松地对图像进行缩放操作。通过调整插值方法,我们可以获得不同质量和速度的缩放结果。在实际应用中,resize函数可以与其他图像处理函数结合使用,完成各种复杂的图像处理任务。文章来源地址https://www.toymoban.com/news/detail-847830.html
到了这里,关于[C++] opencv - resize函数介绍和使用案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!