Python基于opencv的图像压缩算法实例分析


Posted in Python onMay 03, 2018

本文实例讲述了Python基于opencv的图像压缩算法。分享给大家供大家参考,具体如下:

插值方法:

CV_INTER_NN - 最近邻插值,
CV_INTER_LINEAR - 双线性插值 (缺省使用)
CV_INTER_AREA - 使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN 方法..
CV_INTER_CUBIC - 立方插值.

函数 cvResize 将图像 src 改变尺寸得到与 dst 同样大小。若设定 ROI,函数将按常规支持 ROI.

程序1:图像压缩(第一版)

# coding=utf-8
import time
time1 = time.time()
import cv2
image=cv2.imread("c:/1.jpg")
res = cv2.resize(image, (1280,960), interpolation=cv2.INTER_AREA)
# cv2.imshow('image', image)
# cv2.imshow('resize', res)
# cv2.waitKey(0)
# cv2.destroyAllWindows()
cv2.imwrite("C:/5.jpg",res)
time2=time.time()
print u'总共耗时:' + str(time2 - time1) + 's'

4.19M—377k 压缩了11倍

程序2:图像压缩(第二版)

#-*-coding:utf-8-*-
#############设置编码################
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
###################导入计算机视觉库opencv和图像处理库PIL####################
from PIL import Image
from PIL import ImageEnhance
from PIL import ImageFilter
import cv2
import time
time1 = time.time()
####################读入图像###############################
image=cv2.imread("c:/pic//0.jpg")
####################双三次插值#############################
res = cv2.resize(image, (1280,960), interpolation=cv2.INTER_AREA)
####################写入图像########################
cv2.imwrite("C:/pic/101.jpg",res)
###########################图像对比度增强##################
imgE = Image.open("c:/pic/101.jpg")
imgEH = ImageEnhance.Contrast(imgE)
img1=imgEH.enhance(2.8)
########################图像转换为灰度图###############
gray = img1.convert("L")
gray.save("C:/pic/3.jpg")
##########################图像增强###########################
# 创建滤波器,使用不同的卷积核
gary2=gray.filter(ImageFilter.DETAIL)
gary2.save("C:/pic/2.jpg")
#############################图像点运算#################
gary3=gary2.point(lambda i:i*0.9)
gary3.save("C:/pic/4.jpg")
# img1.show("new_picture")
time2=time.time()
print u'总共耗时:' + str(time2 - time1) + 's'

4.17M?>290kb

程序3:函数版本

#-*-coding:utf-8-*-
#############设置编码################
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
############导入计算机视觉库opencv和图像处理库PIL####################
from PIL import Image
from PIL import ImageEnhance
from PIL import ImageFilter
import cv2
import time
time1 = time.time()
########################自定义图像压缩函数############################
def img_zip(path,filename1,filename2):
  image = cv2.imread(path+filename1)
  res = cv2.resize(image, (1280, 960), interpolation=cv2.INTER_AREA)
  cv2.imwrite(path+filename2, res)
  imgE = Image.open(path+filename2)
  imgEH = ImageEnhance.Contrast(imgE)
  img1 = imgEH.enhance(2.8)
  gray1 = img1.convert("L")
  gary2 = gray1.filter(ImageFilter.DETAIL)
  gary3 = gary2.point(lambda i: i * 0.9)
  gary3.save(path+filename2)
################################主函数##################################
if __name__ == '__main__':
  path=u"c:/pic/"
  filename1="0.jpg"
  filename2="1.jpg"
  img_zip(path,filename1,filename2)
  time2 = time.time()
  print u'总共耗时:' + str(time2 - time1) + 's'

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python分割文件的常用方法
Nov 01 Python
Python之父谈Python的未来形式
Jul 01 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
python自动重试第三方包retrying模块的方法
Apr 24 Python
关于Python的一些学习总结
May 25 Python
python3结合openpyxl库实现excel操作的实例代码
Sep 11 Python
Python字符串的全排列算法实例详解
Jan 07 Python
Python进阶之@property动态属性的实现
Apr 01 Python
python设计tcp数据包协议类的例子
Jul 23 Python
基于Python+Appium实现京东双十一自动领金币功能
Oct 31 Python
python 命名规范知识点汇总
Feb 14 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
Dec 17 Python
python实现数据导出到excel的示例--普通格式
May 03 #Python
python操作xlsx文件的包openpyxl实例
May 03 #Python
对Python字符串中的换行符和制表符介绍
May 03 #Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 #Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 #Python
Python 解决中文写入Excel时抛异常的问题
May 03 #Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 #Python
You might like
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
javascript 短路法代码精简
2009/08/20 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
js中Generator函数的深入讲解
2019/04/07 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
2020/06/01 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
python正则表达式中的括号匹配问题
2014/12/14 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
python机器学习之KNN分类算法
2018/08/29 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
python 代码运行时间获取方式详解
2020/09/18 Python
Django跨域请求原理及实现代码
2020/11/14 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
2014年三八妇女节活动总结
2014/03/01 职场文书
文明礼仪倡议书
2015/04/28 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
生死抉择观后感
2015/06/09 职场文书
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技