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中模块的__all__属性详解
Oct 26 Python
Python程序退出方式小结
Dec 09 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
python如何实现复制目录到指定目录
Feb 13 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
django中嵌套的try-except实例
May 21 Python
Python如何脚本过滤文件中的注释
May 27 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
Python3读写ini配置文件的示例
Nov 06 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 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
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
js读写json文件实例代码
2014/10/21 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
Python实现的彩票机选器实例
2015/06/17 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
python学生信息管理系统(完整版)
2020/04/05 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
Python Django搭建网站流程图解
2020/06/13 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
番木瓜健康和保健产品第一大制造商:Herbal Papaya
2017/04/25 全球购物
护理专业本科生自荐信
2013/10/01 职场文书
应届毕业生求职自荐书
2014/01/03 职场文书
校园十佳歌手策划书
2014/01/22 职场文书
青年文明号复核材料
2014/02/11 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
教师研修随笔感言
2015/11/18 职场文书
mysql如何查询连续记录
2022/05/11 MySQL
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python