博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]图像resize
阅读量:5009 次
发布时间:2019-06-12

本文共 1749 字,大约阅读时间需要 5 分钟。

 转载地址:http://www.cnblogs.com/korbin/p/5612427.html

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

原函数

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

dsize=Size(round(fxsrc.cols),round(fysrc.rows))dsize=Size(round(fx∗src.cols),round(fy∗src.rows))
dsize和fx、fy不能同时为0。fx、fy是沿x轴和y轴的缩放系数;默认取0时,计算如下
fx=(double)dsize.width/src.colsfx=(double)dsize.width/src.cols
fy=(double)dsize.height/src.rowsfy=(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 
#include
#include
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; }

参考

转载于:https://www.cnblogs.com/Crysaty/p/6549545.html

你可能感兴趣的文章
红黑树-想说爱你不容易
查看>>
Git操作指南
查看>>
Loadrunner安装详解
查看>>
c++ primer读书笔记之c++11(一)
查看>>
【题目】英文字符进行频率的统计,直方图输出
查看>>
php最新变异一句话
查看>>
LeetCode-Binary Tree Level Order Traversal
查看>>
COM组件开发实践
查看>>
yii2 源码分析1从入口开始
查看>>
浅谈网站推广
查看>>
Away3D基础之摄像机
查看>>
Leetcode 128. Longest Consecutive Sequence
查看>>
程序员必须知道的几个Git代码托管平台
查看>>
导电塑料入梦来
查看>>
C# 线程手册 第五章 扩展多线程应用程序 - 什么是线程池
查看>>
笔记1126ASP.NET面试题(转)
查看>>
自签证书脚本
查看>>
考研路茫茫--单词情结 - HDU 2243(AC自动机+矩阵乘法)
查看>>
关于zepto在chrome中触发两次的解决方案
查看>>
PAT (Basic Level) Practise:1010. 一元多项式求导
查看>>