由于前段时间用手机拍照,发现图片太大,一张就差不多5M,传到电脑后太大了,不方便处理,所以写了这个用opencv来压缩一下。

下面是具体代码,代码较简单,大家一看就懂。

#coding = utf-8
import cv2
import os
import mathdef get_doc_size(path):try:size = os.path.getsize(path)return get_mb_size(size)except Exception as err:print(err)def get_mb_size(bytes):bytes = float(bytes)mb = bytes / 1024 / 1024return mbdef delete_file(path):if file_exist(path):os.remove(path)else:print('no such file:%s' % path)def file_exist(path):return os.path.exists(path)def resize_rate(path, resize_path, fx, fy):image = read_image(path)im_resize = cv2.resize(image, None, fx=fx, fy=fy)delete_file(resize_path)save_image(resize_path, im_resize)def save_image(path, image):cv2.imwrite(path, image)def read_image(path):return cv2.imread(path)path = "D://3//313.jpg" #被压缩图片的绝对路径
resize_path = "D://3//3.jpg"  #压缩图片的存储位置,记住给压缩图片命名,3.jpg就是压缩后图片的名字
size = get_doc_size(path)
print(size) #原始的size
delete_file(resize_path)
filesize = 0.8   #压缩比例while size > filesize:rate = math.ceil((size / filesize) * 10) / 10 + 0.1rate = math.sqrt(rate)rate = 1.0 / rateif file_exist(resize_path):resize_rate(resize_path, resize_path, rate, rate)else:resize_rate(path, resize_path, rate, rate)size = get_doc_size(resize_path)

下面是效果截图

下面是我的github链接,里面有源码,读者可以自行下载

https://github.com/jiang-congcong/compress-picture-by-opencv3

用opencv压缩图片相关推荐

  1. python opencv压缩图片_OpenCV Python 缩放图片

    By 凌顺 2019年9月12日 本示例使用的OpenCV版本是:4.1.1 运行Python的编辑器:Jupyter notebook 示例目的 使用OpneCV的cv2.resize()函数对图片 ...

  2. python opencv压缩图片大小_使用OpenCV Python调整图像大小的最佳方法

    我想你是想调整和保持纵横比.这里有一个函数可以根据百分比来放大或缩小图像 原始图像示例 将图像大小调整为0.5(50%) 将图像大小调整为1.3(130%) import cv2 # Resizes ...

  3. 基于opencv视觉库,通过numpy进行像素矩阵处理,压缩图片、做像素图

    1. numpy库基本介绍 NumPy 是一个Python包(Numeric Python)它是一个由多维数组对象和用于处理数组的例程集合组成的库,其支持大量高维度数组与矩阵运算.NumPy 也针对数 ...

  4. 【Python黑科技】图片太大不能上传?三种压缩图片大小的方法(代码注释详细)

    目录 实现效果 原图大小8.46MB PIL库quality降低图片质量方式压缩图片366KB PIL库thumbnail压缩图片大小来压缩图片985KB OpenCV缩放图片大小来压缩图片 177K ...

  5. python压缩图片--指定压缩大小且保真压缩

    代码核心思路 循环降低图片质量quality 直至图片质量大小符合目标质量后退出循环 pillow压缩失真严重 ''' pip install pillow ''' from io import By ...

  6. python 批处理压缩图片

    巧合之下,需要一个能够批处理压缩图片的程序来帮我的私人图库做一个压缩.在网上找了一些软件,但是都没有遇到合适的(或者免费的bushi),于是想到能不能用自己拙劣的python写个小程序呢? 于是在网上 ...

  7. Android 高清加载巨图方案 拒绝压缩图片

    Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处:  http://blog.csdn.net/lmj623565791/article/details/49300989:  本文出自: ...

  8. android h5 多图上传源码,JS移动端/H5同时选择多张图片上传并使用canvas压缩图片...

    最近在做一个H5的项目,里边涉及到拍照上传图片的功能以及识别图片的功能,这里对识别图片的功能不做赘述,不属本文范畴.我在做完并上线项目后,同事跟我提了一个要求是可不可以同时选择多张图片上传,我做的时候 ...

  9. python图片旋转脚本_Python+OpenCV 实现图片无损旋转90°且无黑边

    0. 引言 有如上一张图片,在以往的图像旋转处理中,往往得到如图所示的图片. 然而,在进行一些其他图像处理或者图像展示时,黑边带来了一些不便.本文解决图片旋转后出现黑边的问题,实现了图片尺寸不变的旋转 ...

  10. idea批量修改变量快捷键mac_使用Mac自带功能批量修改图片名称、类型和压缩图片大小...

    Mac电脑自带的聚焦搜索功能已经很强大,可以快速准确的搜索电脑内的文件,但是从网上下载的文件,特别是一些图片文件都是一串数字组成的文件名,很难记忆和搜索,我们可以使用Mac自带的『自动操作』功能给图片 ...

最新文章

  1. java 中向文本写入和读取hashmap_就靠这一篇HashMap的讲解,我与头条面试官聊了一个小时。...
  2. Linux 内核调试必备工具
  3. 系统讲解——更好的实施专案(Porject)
  4. [Java基础]为什么会出现字符流?与编码表介绍
  5. Opencv--Mat类型ROI的设置
  6. 深入浅出 eBPF: (Linux/Kernel/XDP/BCC/BPFTrace/Cillium)
  7. Compound社区发起一项讨论 向5000名早期活跃用户发放总供应量5%的COMP代币
  8. win7hosts文件位置
  9. android多媒体stagefright框架,Android多媒体框架下Stagefright的功能扩展.PDF
  10. 10、共射放大电路的设计
  11. IOS移动应用跳转微信小程序
  12. 优秀的 Verilog/FPGA开源项目介绍(二十九)- 开源网站
  13. 自定义ViewPager实现3D画廊效果
  14. 为什么PPIO要设计支付代理节点?
  15. Ubuntu查看并修改DNS
  16. 吕旭军:如何打造区块链数字资产交易?
  17. 最小二乘法拟合二次曲线 C语言
  18. MybatisPlus中乐观锁的配置
  19. 面试了几十家软件测试公司全是这个“套路”
  20. 基础语法值c++提高编程

热门文章

  1. opencv: C++实现将彩色图转换为灰色图
  2. Spring+SpringMVC+MongoDB案例
  3. 线性代数可以速成吗_怎样速成线性代数?
  4. 【SAP-SD】物料 X 未对销售组织 XXXX 分销渠道 X 语言 DE 定义
  5. 联想跨国收购余震:摩托罗拉裁员千人
  6. AI时代,陪孩子玩什么游戏?| 前Google资深工程师实战心法
  7. 在matlab中输出怎么表示什么意思,matlab中基于帧输出是什么意思
  8. 有点意思!“古董级” 诺基亚功能机跑 Linux
  9. 水彩风建筑效果图制作教程
  10. java文本框背景_Java 添加文本框到PPT幻灯片过程解析