当前位置: 首页 > news >正文

Open CV缩放图像

缩放图像是图像处理中需要经常使用的操作。太小的图像在图像识别中不能很好的处理,需要将其放大,太大的图像不方便储存,需要将其缩小,下面记录OpenCV图片缩放方法。

缩放函数

void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
参数说明:
src – 原图像
dst – 输出图像
dsize – 输出图像大小,如果为0 则通过此公式计算得到:Size(round(fx*src.cols), round(fy*src.rows)),dsize和fx,fy不能全为空
fx – x方向缩放比例
fy – y方向缩放比例
interpolation – 插值方法:
– INTER_NEAREST - a nearest-neighbor interpolation
– INTER_LINEAR - a bilinear interpolation (used by default)
– INTER_AREA - resampling using pixel area relation. It may be a preferred method for
image decimation, as it gives moire’-free results. But when the image is zoomed, it is
similar to the INTER_NEAREST method.
– INTER_CUBIC - a bicubic interpolation over 4x4 pixel neighborhood
– INTER_LANCZOS4 - a Lanczos interpolation over 8x8 pixel neighborhood

使用示例(放大图像)

下面代码演示使用不同的缩放方法放大同一张图片的结果。

int main( int argc, char** argv )
{
    Mat matSrc = imread("oripic.jpg",1);
    Mat matDst_INTER_NEAREST,matDst_INTER_LINEAR,matDst_INTER_AREA,matDst_INTER_CUBIC,matDst_INTER_LANCZOS4;
    //原图使用不同的方法放大5倍后的结果
    resize(matSrc,matDst_INTER_NEAREST,Size(0,0),5,5,INTER_NEAREST);
    resize(matSrc,matDst_INTER_LINEAR,Size(0,0),5,5,INTER_LINEAR);
    resize(matSrc,matDst_INTER_AREA,Size(0,0),5,5,INTER_AREA);
    resize(matSrc,matDst_INTER_CUBIC,Size(0,0),5,5,INTER_CUBIC);
    resize(matSrc,matDst_INTER_LANCZOS4,Size(0,0),5,5,INTER_LANCZOS4);
    namedWindow("OriPicture");
    imshow("OriPicture",matSrc);
    namedWindow("INTER_NEAREST");
    imshow("INTER_NEAREST",matDst_INTER_NEAREST);
    namedWindow("INTER_LINEAR");
    imshow("INTER_LINEAR",matDst_INTER_LINEAR);
    namedWindow("INTER_AREA");
    imshow("INTER_AREA",matDst_INTER_AREA);
    namedWindow("INTER_CUBIC");
    imshow("INTER_CUBIC",matDst_INTER_CUBIC);
    namedWindow("INTER_LANCZOS4");
    imshow("INTER_LANCZOS4",matDst_INTER_LANCZOS4);
    waitKey(0);
}

放大结果:

image

使用示例(缩小图像)

下面代码将指定图片缩小为当前的0.3

int main( int argc, char** argv )
{
    Mat matSrc = imread("oripic1.png",1);
    Mat matDst_INTER_NEAREST,matDst_INTER_LINEAR,matDst_INTER_AREA,matDst_INTER_CUBIC,matDst_INTER_LANCZOS4;
    //原图使用不同的方法放大5倍后的结果
    resize(matSrc,matDst_INTER_NEAREST,Size(0,0),0.3,0.3,INTER_NEAREST);
    resize(matSrc,matDst_INTER_LINEAR,Size(0,0),0.3,0.3,INTER_LINEAR);
    resize(matSrc,matDst_INTER_AREA,Size(0,0),0.3,0.3,INTER_AREA);
    resize(matSrc,matDst_INTER_CUBIC,Size(0,0),0.3,0.3,INTER_CUBIC);
    resize(matSrc,matDst_INTER_LANCZOS4,Size(0,0),0.3,0.3,INTER_LANCZOS4);
    namedWindow("OriPicture",WINDOW_AUTOSIZE);
    imshow("OriPicture",matSrc);
    namedWindow("INTER_NEAREST",WINDOW_AUTOSIZE);
    imshow("INTER_NEAREST",matDst_INTER_NEAREST);
    namedWindow("INTER_LINEAR");
    imshow("INTER_LINEAR",matDst_INTER_LINEAR);
    namedWindow("INTER_AREA");
    imshow("INTER_AREA",matDst_INTER_AREA);
    namedWindow("INTER_CUBIC");
    imshow("INTER_CUBIC",matDst_INTER_CUBIC);
    namedWindow("INTER_LANCZOS4");
    imshow("INTER_LANCZOS4",matDst_INTER_LANCZOS4);
    waitKey(0);
}

缩小效果(方法名没有在图像中显示,可以自行运行代码查看效果)

image

转载于:https://www.cnblogs.com/Reyzal/p/5550009.html

相关文章:

  • 程序员之路:以Android证道
  • 地域划分
  • Unable to parse the default media type registry
  • (原)Matlab的svmtrain和svmclassify
  • Fastclick 导致click事件触发两次的问题,fastclickclick
  • 用spring-data-redis实现类似twitter的网站(转)
  • [javaSE] GUI(事件监听机制)
  • android WebViewClient和WebChromeClient
  • vim列模式编辑
  • kafka集群发送消息报错
  • apache2 启用php7.0
  • Android 仿网易新闻v3.5:上下滑动的引导页
  • C语言基础
  • angularjs与require的集成摘抄
  • rsync远程数据备份配置之再次总结
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • android图片蒙层
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • docker-consul
  • JavaScript DOM 10 - 滚动
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java-详解HashMap
  • webgl (原生)基础入门指南【一】
  • 阿里研究院入选中国企业智库系统影响力榜
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 基于 Babel 的 npm 包最小化设置
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  •  一套莫尔斯电报听写、翻译系统
  • 译米田引理
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)pulsar安装在独立的docker中,python测试
  • (三)模仿学习-Action数据的模仿
  • (译)2019年前端性能优化清单 — 下篇
  • .gitignore
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • /etc/motd and /etc/issue
  • @ModelAttribute使用详解
  • @Valid和@NotNull字段校验使用
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [20171113]修改表结构删除列相关问题4.txt
  • [Android] 修改设备访问权限
  • [APIO2012] 派遣 dispatching
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [CTO札记]盛大文学公司名称对联
  • [docker] Docker容器服务更新与发现之consul