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

【五分钟】学会利用cv2.resize()函数实现图像缩放

引言

在numpy知识库:深入理解numpy.resize函数和数组的resize方法中,小编较为详细地探讨了numpy的resize函数背后的机理。从结果来看,numpy.resize函数并不适合对图像进行缩放操作。而opencv中的resize函数虽然和numpy的resize函数同名,但却支持图像的缩放操作。

需求场景

欲对高为384,宽为512的图像进行放大或缩小。

生成初始图像

代码如下:

import cv2
import numpy as np

# 生成初始图像
img = np.zeros((384, 512), dtype=np.uint8) 
img[172:212, 32:-32] = 255
print(img.shape) # (高,宽) ---> (384, 512)

cv2.imshow('img', img)
cv2.waitKey(0)

在这里插入图片描述

将初始图像的【高】放大一倍(384 --> 768)

代码如下:

import cv2
import numpy as np

# 生成初始图像
img = np.zeros((384, 512), dtype=np.uint8)
img[172:212, 32:-32] = 255
H, W = img.shape # img.shape 分别记录了图像的【高】和【宽】 --> 【高前宽后】
print("before", H, W) # 384 512

# 可行的方案1 ———— 使用cv2.resize函数的dsize参数指定输出图像的宽高
# dsize的第一个参数指定的是输出图像的【宽】,第二个才是【高】 --> 【宽前高后】
# --> 与img.shape正好相反,使用cv2.resize函数的dsize参数需要特别注意。
img = cv2.resize(img, dsize=(W, H*2)) # 注意dsize参数的使用方式


# 可行的方案2 ———— 使用cv2.resize函数的fy参数
# 要点1: fy=2表示沿着y轴(高)方向放大一倍;
# 要点2: fx=1虽然没有起到作用,但不可省略;
# 要点3: dsize参数必须设置为None;
img = cv2.resize(img, dsize=None, fx=1, fy=2)) # 沿着高的方向将初始图像放大一倍
# fx = 2, fy = 1 ---> 宽放大一倍,高保持不变
# fx = 0.5, fy = 1 ---> 宽缩小为原来1/2,高保持不变
# fx = 1, fy = 0.5 ---> 高缩小为原来1/2,宽保持不变

# 打印新图像大小
new_H, new_W = img.shape
print("after", new_H, new_W) # 768 512

# 显示图像
cv2.imshow('img', img)
cv2.waitKey(0)

运行结果:
在这里插入图片描述

在这里插入图片描述

结束语

如果本博文对你有所帮助,可以点个赞/收藏支持一下,如果能够持续关注,小编感激不尽~
小编会坚持创作,持续优化博文质量,以小见大,给读者带来更好的阅读体验~


http://www.kler.cn/a/159373.html

相关文章:

  • 从北美火到中国,大数据洞察品牌“STANLEY”的突围之路
  • Flink Source 详解
  • 直流保护电路设计及保护器件参数说明和选型
  • 如何实现主备租户的无缝切换 | OceanBase应用实践
  • 关于学习炸鸡佬智能手表 应用硬件IIC1来取代原来软件模拟的IIC
  • 算法训练(leetcode)二刷第二十六天 | *452. 用最少数量的箭引爆气球、435. 无重叠区间、*763. 划分字母区间
  • Ant Design Vue(v1.7.8)a-table组件的插槽功能
  • 【LVS实战】05 keepalived脑裂问题解决方案
  • 协同过滤算法之vue+springboot个性化电影评分推荐系统6n498
  • 振弦采集仪在土体与岩体监测中的可靠性与精度分析
  • 【信息安全】-个人敏感信息、个人信息、个人金融信息
  • js中for 循环和 map 循环都是是什么,他们有什么区别
  • 【hacker送书第9期】算法训练营(入门篇)
  • kafka 集群 ZooKeeper 模式搭建
  • 执法记录仪、一体化布控球等目前支持的AI智能算法、视频智能分析算法有哪些
  • 【链表Linked List】力扣-114 二叉树展开为链表
  • GPT-Crawler一键爬虫构建GPTs知识库
  • 【重点】Flink四大基石
  • 【漏洞复现】狮子鱼任意文件上传漏洞
  • StackGres 1.6,可私有部署的云原生数据库中间件平台工程
  • 应用密码学期末复习(3)
  • ​HTML代码混淆技术:原理、应用和实现方法详解
  • C# OpenCvSharp DNN 深度神经网络下的风格迁移模型
  • win11 install oh-my-posh
  • python实战—核心基础1(高考倒计时)lv1
  • WordPress采集器自动采集发布的工具