自学内容网 自学内容网

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】总结

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


原文地址:https://blog.csdn.net/weixin_44855046/article/details/144377450

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!