zoukankan      html  css  js  c++  java
  • OpenCV(3)-图像resize

    在图像处理过程中,有时需要把图像调整到同样大小,便于处理,这时需要用到图像resize()

    原函数
    void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
    前两个参数分别为输入和输出图像。dsize表示输出图像的大小,如果为0,则

    [dsize = Size(round(fx*src.cols), round(fy*src.rows)) ]

    dsize和fx、fy不能同时为0。fx、fy是沿x轴和y轴的缩放系数;默认取0时,计算如下

    [fx=(double)dsize.width/src.cols ]

    [fy=(double)dsize.height/src.rows ]

    最优一个参数interpolation表示插值方式,有以下几种:
    INTER_NEAREST - 最近邻插值
    INTER_LINEAR - 线性插值(默认)
    INTER_AREA - 区域插值
    INTER_CUBIC - 三次样条插值
    INTER_LANCZOS4 - Lanczos插值

    INTER_NEAREST最近邻插值

    目标如下的像素点为对应的最近的原图像的像素点。假设原图像大小为(s_height, s_width),目标图像大小为(d_height, d_width),那么高度和宽度的缩放比例为h_ratio = s_height/d_height,w_ratio=s_width/d_width。

    对面目标图像像素:(x, y)其值等于原图像(x * w_ration, y * h_ration)处的值。

    INTER_LINEAR 线性插值

    默认使用。在使用最近邻插值时,得到的坐标未必是一个整数,例如
    (xw_ration, yh_ration)=(10.5, 20.5),那么可能取得坐标点就有四种(10, 20)、(11, 20)、(10, 21)、(11, 21)。双线性插值,会把这四个坐标的像素值加权求和。
    D(x, y) = S(j, k) * w1 + S(j+1, k) *w2 + S(j+1,k+1) * w3 + S(j, K+1) * w4,其中w为权值。权值大小和计算位置的小数部分有关。

    CV_INTER_AREA:区域插值

    区域插值分为3种情况。图像放大时类似于线性插值,图像缩小时可以避免波纹出现。

    INTER_CUBIC 三次样条插值

    使用4x4邻域内的像素双3次插值。

    INTER_LANCZOS4 Lanczos插值

    使用8×8像素邻域的Lanczos插值

    举例

    #include <string>
    
    #include <opencv2/opencv.hpp>
    #include <opencv2/imgproc/imgproc.hpp>
    
    int main(int argc, char* argv[]){
    	std::string path = "";
    	int resize_height = 256;
    	int resize_width = 256;
    	cv::Mat src = cv::imread(path); 
    	cv::Mat dst;
    	imshow("src", src);
    	cv::resize(src, dst, cv::Size(resize_width, resize_height), (0, 0), (0, 0), cv::INTER_LINEAR);
    	imshow("dst", dst);
    
    	cv::waitKey(0);
    	return 0;
    }
    

    参考官网

  • 相关阅读:
    win10 uwp 弹起键盘不隐藏界面元素
    win10 uwp 存放网络图片到本地
    win10 uwp 存放网络图片到本地
    sublime Text 正则替换
    sublime Text 正则替换
    win10 uwp 绘图 Line 控件使用
    win10 uwp 绘图 Line 控件使用
    AJAX 是什么?
    什么是 PHP SimpleXML?
    PHP XML DOM:DOM 是什么?
  • 原文地址:https://www.cnblogs.com/korbin/p/5612427.html
Copyright © 2011-2022 走看看