图像缩放、翻转、拼接的介绍与使用

news2024/12/25 23:50:39

目录

(1)图像缩放:resize()

(2)图像翻转: flip()

(3)图像拼接:hconcat() 和vconcat()


(1)图像缩放:resize()

使用 cv2.resize() 函数可以实现图像的缩放。你需要指定目标图像的大小或缩放比例以及插值方法。

void cv::resize ( InputArraysrc

OutputArray dst,

Size   dsize,

double   fx,

double    fy,

int           interpolation = INTER LINEAR(双线性插值)

  • src:输入图像。
  • dst:输出图像,图像的数据类型与src相同。
  • dsize:输出图像的尺寸。
  • fx:水平轴的比例因子,如果将水平轴变为原来的两倍,则赋值为2。
  • fy:垂直轴的比例因子,如果将垂直轴变为原来的两倍,则赋值为2。
  • interpolation:差值方法的标志。

以下是常用的 interpolation 参数及其描述:

  1. cv2.INTER_NEAREST:最近邻插值

    • 这是一种最简单的插值方法,它根据目标位置附近的最近一个已知像素的值来估算新的像素值。速度很快,但可能会导致块状的图像效果,特别是在放大图像时。

  2. cv2.INTER_LINEAR:双线性插值

    • 双线性插值考虑了目标位置附近的四个最近已知像素的值,然后根据距离和权重进行插值计算。这通常提供比最近邻插值更平滑的结果。

  3. cv2.INTER_CUBIC:双三次插值

    • 双三次插值使用目标位置附近的16个最近已知像素,根据距离和权重进行插值。它可以提供更高质量的图像,但计算开销较大。

  4. cv2.INTER_LANCZOS4:Lanczos 插值

    • Lanczos 插值是一种高质量的插值方法,它使用一个较大的像素邻域来进行插值。它通常用于需要高质量图像的情况,但计算成本更高。

  5. cv2.INTER_AREA:像素区域重采样

    • 像素区域重采样是一种在图像缩小时常用的插值方法,它会根据目标位置附近的像素区域的平均值来计算新的像素值。这可以减少图像的模糊程度。

例子:

         

        (原图)                                (gray)


Mat gray;

cvtColor(image,gray,COLOR_BGR2GRAY);

Mat smallmg,bigImg0,bigImg1,bigImg2;

resize(gray,smallmg,Size(15,15),0,0,INTER_AREA);//先将图像缩小

resize(smallmg,bigImg0,Size(30,30),0,0,INTER_NEAREST);//最近邻插值

resize(smallmg,bigImg1,Size(30,30),0,0,INTER_LINEAR);//双线性插值

resize(smallmg,bigImg2,Size(30,30),0,0,INTER_CUBIC);//双三次插值

(smallmg)              (bigImg0)               (bigImg1)            (bigImg2)

(2)图像翻转: flip()

使用 cv2.flip() 函数可以实现图像的翻转。你需要指定图像和翻转方向(水平、垂直或同时水平和垂直)。

void cv::flip ( InputArray     src,

OutputArray dst,

int                 flipCode

  • src:输入图像
  • dst: 输出图像,与src具有相同的大小和数据类型以及通道数。
  • flipCode: 翻转方式标志,当 flipCode 的值大于0时,图像将在水平方向上进行翻转,即左右镜像。 当 flipCode 的值为 0 时,图像将在垂直方向上进行翻转,即上下镜像。 当 flipCode 的值小于0时,图像将在水平和垂直方向上同时进行翻转,即左右上下镜像。

例子:

Mat img_x,img_y,img_xy;

flip(gray,img_x,0);//沿x轴对称

flip(gray,img_y,1);//沿y轴对称

flip(gray,img_xy,-1);//沿x轴对称,再沿y轴对称

 

    (img_x)                               (img_y)                    (img_xy)

(3)图像拼接:hconcat() 和vconcat()

图像拼接通常涉及将多个图像在水平或垂直方向上连接起来,创建一个更大的图像。使用 cv2.hconcat() 和 cv2.vconcat() 函数可以在水平和垂直方向上进行图像拼接。

void cv::hconcat ( InputArray    src1,

InputArray  src2,

OutputArray dst

void cv::vconcat ( InputArray  src1,

InputArray  src2,

OutputArray   dst

  • src1:第一个需要连接的Mat类矩阵。
  • src2:第二个需要连接的Mat类矩阵,与第一个参数具有相同的宽度、数据类型和通道数。
  • dst:连接后的Mat类矩阵。

例子:

//图像横向连接

Mat imgh,imgv;

hconcat(img_x,img_y,imgh);

//图像竖向连接

vconcat(img_x,img_y,imgv);

   

       (imgh)                                                                          (imgv)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/950046.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Next.js基础语法

Next.js 目录结构 入口App组件(_app.tsx) _app.tsx是项目的入口组件,主要作用: 可以扩展自定义的布局(Layout)引入全局的样式文件引入Redux状态管理引入主题组件等等全局监听客户端路由的切换 ts.config…

1.7 完善自定位ShellCode

在之前的文章中,我们实现了一个正向的匿名管道ShellCode后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实现通过PEB获取GetProcAddre…

手写RPC——数据序列化工具protobuf

手写RPC——数据序列化工具protobuf Protocol Buffers(protobuf)是一种用于结构化数据序列化的开源库和协议。下面是 protobuf 的一些优点和缺点: 优点: 高效的序列化和反序列化:protobuf 使用二进制编码&#xff0c…

QTableWidget实现鼠标悬停整行高亮显示

一、最终效果 二、 重写QTableWidget类 mytablewidget.h #ifndef MYTABLEWIDGET_H #define MYTABLEWIDGET_H#include <QTableWidget>class MyTableWidget : public QTableWidget { public:explicit MyTableWidget(QWidget* parent nullptr);protected:void leaveEve…

一页纸吃透PMP常考知识点!

我是胖圆~需要文档可留言 或者移步公众号【胖圆说PM】找我

根据身高重建队列【贪心算法】

根据身高重建队列 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &#xff0c;前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返…

色温曲线坐标轴的选取:G/R、G/B还是R/G、B/G ?

海思色温曲线坐标 Mstar色温曲线坐标 高通色温曲线坐标 联咏色温曲线坐标 查看各家白平衡调试界面&#xff0c;比如海思、Mstart、高通等调试资料&#xff0c;白平衡模块都是以R/G B/G作为坐标系的两个坐标轴&#xff0c;也有方案是以G/R G/B作为坐标系的两个坐标轴。 以G/R G…

考生作弊行为分析算法

考生作弊行为分析系统利用pythonyolo系列网络模型算法框架&#xff0c;考生作弊行为分析算法利用图像处理和智能算法对考生的行为进行分析和识别&#xff0c;经过算法服务器的复杂计算和逻辑判断&#xff0c;算法将根据考生行为的特征和规律&#xff0c;判定是否存在作弊行为。…

Vue中如何为Echarts统计图设置数据

在前端界面接收后端数据后&#xff0c;将数据赋值给ECharts中的data时出现了&#xff0c;数据读取失败的问题&#xff08;可能是由于数据渲染的前后顺序问题&#xff09;。后通过如下方式进行了解决&#xff1a; 1、接下来将介绍UserController中的countUsers方法&#xff0c;…

为什么2G、3G、4G成功了,5G却?

你可能已经多年来一直听到关于闪电般的5G的炒作。虽然新的无线网络在美国仍然没有普及&#xff0c;但5G正在波士顿和西雅图到达拉斯和堪萨斯城等城市慢慢出现。随着连接速度的加快&#xff0c;用户的安全性和隐私保护将增加&#xff0c;因为无线行业试图改善3G和4G的防御。但是…

K8S最新版本集群部署(v1.28) + 容器引擎Docker部署(下)

温故知新 &#x1f4da;第三章 Kubernetes各组件部署&#x1f4d7;安装kubectl&#xff08;可直接跳转到安装kubeadm章节&#xff0c;直接全部安装了&#xff09;&#x1f4d5;下载kubectl安装包&#x1f4d5;执行kubectl安装&#x1f4d5;验证kubectl &#x1f4d7;安装kubead…

文件上传漏洞复现(CVE-2018-2894)

文章目录 搭建环境启动环境漏洞复现 前提条件&#xff1a; 1.安装docker docker pull medicean/vulapps:j_joomla_22.安装docker-compose docker run -d -p 8000:80 medicean/vulapps:j_joomla_23.下载vulhub 搭建环境 进入vulhb目录下的weblogic&#xff0c;复现CVE-2018-289…

修改linux中tomcat的端口

随便修改一个 以8055为例子 开放8081端口 firewall-cmd --permanent --add-port8081/tcp firewall-cmd --reload firewall-cmd --list-all

three.js(七):内置的二维几何体

二维几何体 PlaneGeometry 矩形平面CircleGeometry 圆形平面RingGeometry 圆环平面 PlaneGeometry 矩形平面 PlaneGeometry(width : Float, height : Float, widthSegments : Integer, heightSegments : Integer) width — 平面沿着X轴的宽度。默认值是1。height — 平面沿着Y…

从格灵深瞳中报稳定盈利,看AI公司的核心竞争力

2023年过半&#xff0c;人工智能产业话题不断。大模型和AIGC掀起热潮&#xff0c;让众多AI公司开始进入新一轮竞赛。但与此同时&#xff0c;不少AI公司依然处于亏损中&#xff0c;研发投入和商业产出难以实现正循环。如何形成健康的商业模式&#xff0c;仍是一大挑战。 AI公司…

【Linux操作系统】文件缓冲区

&#x1f525;&#x1f525; 欢迎来到小林的博客&#xff01;&#xff01;       &#x1f6f0;️博客主页&#xff1a;✈️林 子       &#x1f6f0;️博客专栏&#xff1a;✈️ Linux       &#x1f6f0;️社区 :✈️ 进步学堂       &#x1f6f0…

设计模式--代理模式(Proxy Pattern)

一、什么是代理模式&#xff08;Proxy Pattern&#xff09; 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许一个对象&#xff08;代理&#xff09;充当另一个对象&#xff08;真实对象&#xff09;的接口&#xff0c;以控制对该对象的…

DSP_TMS320F28377D_算法加速方法2_添加浮点运算快速补充库rts2800_fpu32_fast_supplement.lib

继上一篇博客DSP_TMS320F28377D_算法加速方法1_拷贝程序到RAM运行_江湖上都叫我秋博的博客-CSDN博客之后&#xff0c;本文讲第二种DSP算法加速的方法&#xff0c;该方法的加速效果很明显&#xff0c;但是加速范围仅限于32位浮点数下面这几种函数: 1 工程师的关注点 下面稍微解…

CentOS8安装mysql8.0.24

一、下载mysql安装包并解压 执行以下命令&#xff1a; # 创建mysql安装目录 mkdir /usr/local/mysql # 进入mysql安装目录 cd /usr/local/mysql/ # 下载mysql-8.0.24 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz # 解压…

防静电出入门禁管理系统的功能和特点

防静电出入门禁管理系统是一种应用于电子设备生产、仓储物流等领域的门禁系统&#xff0c;旨在防止静电对于设备和产品的损害和干扰。该系统主要包括以下几个方面的功能和特点&#xff1a; 1. 门禁控制功能&#xff1a;通过在入口设置读卡器或生物识别设备&#xff08;如指纹、…