如何使用 OpenCV 和 Python 进行简单的图像压缩

大多数免费图像压缩器都有文件大小要求,使用 python 和 opencv 创建自己的图像压缩器就没有这个烦恼了。在这篇文章中,将展示我是如何做到的,希望它能帮助遇到同样问题的任何人。

配置环境

首先需要创建并激活虚拟环境,这可以通过以下命令完成:

python3 -m venv env
source env/bin/activate

编写代码

接下来打开一个名为“requirements.txt”的文件并插入以下内容:

opencv-python

安装要求,请使用以下命令:

pip install -r requirements.txt

接下来打开一个名为“main.py”的文件,首先需要一些包,代码如下:

import cv2 
import os
import argparse

接下来将创建一个简单的函数来显示文件的文件大小(以 MB 为单位):

def show_file_size(file):
  file_size = os.path.getsize(file)
  file_size_mb = round(file_size / 1024, 2)

  print("File size is now " + str(file_size_mb) + "MB")

只需几行即可显示文件的文件大小,没有什么太复杂的。

最后我们需要创建一个主函数:

if __name__ == "__main__":
  ap = argparse.ArgumentParser()
  ap.add_argument("-i", "--image", required = True, help = "Path to input file")
  ap.add_argument("-c", "--compression", required = True, help = "Compression level")
  args = vars(ap.parse_args())

  image = cv2.imread(args["image"])

  cv2.imwrite("compressed_image.jpg", image, [cv2.IMWRITE_JPEG_QUALITY, args["compression"]])

  print("Image Compressed Successfully")
  show_file_size("compressed_image.jpg")

这里我们使用 ArgumentParser 来解析用户的“图像”和“压缩”参数,然后使用 opencv 读取图像文件,然后使用 imwrite 函数输出压缩文件。最后,我们向用户显示新的文件大小。

完毕!只需几行代码即可进行图像压缩。

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

  • 使用 OpenCV 在图像上绘制矩形

    OpenCV 提供了绘制各种几何形状的功能,例如直线、矩形、圆形等。 该rectangle函数可用于通过指定左上角和右下角的 x 和 y 坐标来绘制矩形。 结果: 为方便起见,该r…

    2022年11月24日
  • OpenCV:图像直方图计算

    图像直方图为图像中像素强度的分布提供了有价值的见解。通过了解直方图,你可以获得有关图像对比度、亮度和整体色调分布的信息。这些知识对于图像增强、图像分割和特征提取等任务非常有用。 本…

    2023年7月22日
  • 使用OpenCV进行图像全景拼接

    图像拼接是计算机视觉中最成功的应用之一。如今,很难找到不包含此功能的手机或图像处理API。在本文中,我们将讨论如何使用Python和OpenCV进行图像拼接。也就是,给定两张共享某…

    2022年10月25日
  • OpenCV基础知识入门

    本文旨在让你快速入门opencv。 OpenCV OpenCV是计算机视觉中最受欢迎的库,最初由intel使用C和C ++进行开发的,现在也可以在python中使用。该库是一个跨平…

    2022年7月9日
  • 在OpenCV中使用Canny边缘检测

    边缘检测是非常常见和广泛使用的图像处理,对于许多不同的计算机视觉应用非常必要,如数据提取,图像分割,在更细粒度的特征提取和模式识别中。它降低了图像中的噪声和细节数量,但保留了图像的…

    2023年5月12日
  • PICS:超低比特率下的图像压缩 | ICML’23 NCW

    最近的文本到图像生成模型的进步提供了从简短的文本描述中生成高质量图像的能力。这些基础模型在大规模数据集上预先训练,适用于几乎没有或不需要进一步训练的各种后续任务。自然的问题是,这些…

    2023年9月20日

发表回复

登录后才能评论