欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > python学opencv|读取图像(七)抓取像素数据顺利修改图像大小

python学opencv|读取图像(七)抓取像素数据顺利修改图像大小

2024/12/21 23:50:09 来源:https://blog.csdn.net/weixin_44855046/article/details/144377450  浏览:    关键词:python学opencv|读取图像(七)抓取像素数据顺利修改图像大小

【1】引言

前序我们已经学习图像的基本读取操作,文章链接为:

python学opencv|读取图像-CSDN博客

也掌握了彩色图像的保存:

python学opencv|读取图像(二)保存彩色图像_python opencv 读取图像转为彩色-CSDN博客

以及图像的放大和缩小:

python学opencv|读取图像(三)放大和缩小图像_python cv 调整图像大小-CSDN博客

在此基础上,我们也许会想到,调整图像大小如何做到精准控制,比如就想把图像的长宽做成一样大,此时该如何设置各个方向上的像素放大或者缩小因子?

带着这个目标,我们一起学习今天的内容。

【2】方法论

要想精准控制图片的像素,最基本的是先知道原始图片的像素。

在前述学习进程中,我们恰好知道了如何获取图片像素:

python学opencv|读取图像(五)读取灰度图像像素-CSDN博客

在此基础上,我们就可以灵活设置放大或者缩小因子,实现图片优化目标。

【3】代码测试

以python学opencv|读取图像(三)放大和缩小图像_python cv 调整图像大小-CSDN博客

文章的代码wield基础,使用的图片名为cv.png。

原始代码和图片如下:

import cv2  # 引入CV模块# 读取图片
image = cv2.imread('cv.png')# 定义放大因子
scale_factor = 0.5# 放大图片,使用立方插值
scaled_image = cv2.resize(image, None, fx=scale_factor, fy=scale_factor, interpolation=cv2.INTER_CUBIC)  # INTER_CUBIC插值# 保存结果
cv2.imwrite('scaled_cv-22-INTER_CUBIC.png', scaled_image)# 显示结果
cv2.imshow('Scaled Image', scaled_image)
cv2.waitKey( )
cv2.destroyAllWindows()

c0585df439e544689c90a7c4df8c9153.png

图1

添加一行代码同时显示改后的图片:

cv2.imshow('Image', image)

运行后的效果为:

40794a87c2e2445990e7e6e332e62d48.png

图2

此时的完整代码为:

import cv2  # 引入CV模块# 读取图片
image = cv2.imread('cv.png')# 定义放大因子
scale_factor = 0.5# 放大图片,使用立方插值
scaled_image = cv2.resize(image, None, fx=scale_factor, fy=scale_factor, interpolation=cv2.INTER_CUBIC)  # INTER_CUBIC插值# 保存结果
cv2.imwrite('scaled_cv-22-INTER_CUBIC.png', scaled_image)# 显示结果
cv2.imshow('Scaled Image', scaled_image)
cv2.imshow('Image', image)
cv2.waitKey( )
cv2.destroyAllWindows()

以此为例,按需设置放大和缩小因子,可实现自由优化图片大小。

【4】总结

掌握了不知道像素条件下,自由优化图片大小的方法。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com