位置: IT常识 - 正文

【Python】-- python的基本图像处理(图像显示、保存、颜色变换、缩放与旋转等)(python%s)

编辑:rootadmin
【Python】-- python的基本图像处理(图像显示、保存、颜色变换、缩放与旋转等)

目录

一、图像文件的读写

 操作步骤:

显示图像文件的三个常用属性:

例:

二、图像文件的处理

常用的图像处理方法

1、图像的显示

2、图像的保存

 3、图像的拷贝与粘贴

 4、图像的缩放与旋转

 5、图像的颜色变换

 6、图像的过滤与增强

7、序列图像处理


推荐整理分享【Python】-- python的基本图像处理(图像显示、保存、颜色变换、缩放与旋转等)(python%s),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python_,π python,'python',~python,/python,python-v,python%s,python%s,内容如对您有帮助,希望把文章链接给更多的朋友!

在Python中,处理图像、网页等二进制文件时主要借助一些第三方库来解析:

PIL:最常用的图像处理第三方库request:通过网络连接下载网页的第三方库beautifulsoup4:解析网页格式、获取数据的第三方库一、图像文件的读写

PIL库包括21个类,其中Image类是PIL库中一个非常重要的类,Image类提供了多种方法可以进行图像文件的读写和处理,要想使用这些方法,需要从PIL库导入Image模块。

from PIL import Image 操作步骤:

首先打开文件,创建图像文件对象,然后进行处理,处理完毕后关闭文件。

使用image类的open方法载入图像文件,载入失败提示IOError,载入成功返回Image对象。

Image.open()显示图像文件的三个常用属性:format:识别图像格式或来源,如果图像不是从文件中读取的,返回Nonesize:图像的宽度和高度(单位为像素),返回二元组(宽度,高度)mode:图像的颜色模式,L代表灰度图像、RGB代表真彩色图像,CMYK代表印刷图像例:from PIL import imageim=Image.open('d:\\Python\\1.jpg')print(im.format,im.size,im.mode)二、图像文件的处理

打开图像文件后,可调用Image类的各种方法或其他模块进行处理。

常用的图像处理方法图像显示show()图像保存sava()图像的拷贝与粘贴crop(box)、paste(region,box)图像的缩放与旋转rotate(angle)、transpose()图像的颜色变换split()、merge()、convert()图像的过滤与增强PIL库中的ImageFilter模块、ImageEnhance模块序列图像处理seek()、tell()1、图像的显示

show()用于显示图像。

例:

from PIL import Image# 图像的显示im=Image.open('csdn.webp')im.show()

2、图像的保存

 sava()用于保存图像,有两个参数:文件名filename和图像格式format;

如果调用时不指定保存格式,将自动根据图像文件的扩展名保存图像;

如果指定格式,则按照格式存储;

sava()可以实现图像格式的转换,例如:将csdn.jpg保存为png格式文件

例:

"""图像的保存"""from PIL import Imageim=Image.open('csdn.webp')im.save('csdn.jpg')

 3、图像的拷贝与粘贴

crop(box)从图像中拷贝一个矩形图像。参数box是一个四元元组,四元素分别代表矩形左上角和右下角顶点的横纵坐标。坐标系统原点(0, 0)为图片左上角。paste(region, box)将一个图像粘贴到另一个图像上。region指被粘贴图像对象,变量box指定粘贴区域,如果是二元元组,代表粘贴区域左上角的横纵坐标;如果是四元元组,则代表左上和右下角的横纵坐标。如果为空,则默认为(0, 0)。如果给定四元元组,被粘贴图像的尺寸必须与粘贴区域尺寸一样。如果尺寸不匹配,被粘贴的图像将被转换为当前图像的模式。

例:

"""图像的拷贝与粘贴"""from PIL import Imageim=Image.open('csdn.jpg')#定义拷贝区域box=(100,20,281,202)#拷贝图像,返回新的图像对象region=im.crop(box)region.show()#将图像region粘贴到图像im左上角im.paste(region,(0,0))#将剪裁下来的图像粘贴到原始图像上im.save('new.jpg')im1=Image.open('new.jpg')im1.show()【Python】-- python的基本图像处理(图像显示、保存、颜色变换、缩放与旋转等)(python%s)

剪裁的图片:

将剪裁的图片放到原图的左上角:

 4、图像的缩放与旋转

resize(size)根据参数size指定的尺寸调整图像,生成一个副本文件。rotate(angle)按照参数angle指定的角度逆时针旋转图像,生成一个副本文件。transpose()方法预定义了一些旋转方式,如左右反转,上下翻转,逆时针旋转(90、180、270度)等。

例:

"""图像的缩放与旋转"""from PIL import Imageim=Image.open('csdn.jpg')#缩小尺寸im.resize((200,100))#逆时针旋转45°out=im.rotate(45)out.show()# 左右反转out=im.transpose(Image.Transpose.FLIP_LEFT_RIGHT)out.show()#上下反转out=im.transpose(Image.Transpose.FLIP_TOP_BOTTOM)out.show()# 逆时针旋转90°out=im.transpose(Image.Transpose.ROTATE_90)out.show()

 5、图像的颜色变换

图像有不同颜色模式。在RGB模式下,每张图片由三个颜色通道R、G、B叠加而成。可以使用split()分离三个颜色通道,对每种颜色分别处理,再用merge()把几个通道合并形成新的图像。还可以使用convert()将图像转换为不同的颜色模式参数。

 例:

"""图像的颜色变换"""from PIL import Imageim=Image.open('csdn.jpg')#分离三个颜色通道r,g,b=im.split()# 更换r、g、b颜色后合成新图像im=Image.merge('RGB',(b,r,g))im.show()

 

 6、图像的过滤与增强

PIL中的ImageFilter模块和ImageEnhance模块提供了过滤图像和增强图像的方法。ImageFilter模块预定义了10种图像过滤方法,可以提取图像轮廓、图像锐化、图像平滑等,主要使用 filter()方法实现。ImageEnhance模块专门用于图像的增强处理,可以增强(或减弱)图像的亮度、对比度、色度等

例:

"""图像的过滤与增强"""from PIL import Imagefrom PIL import ImageFilterfrom PIL import ImageEnhanceim=Image.open('csdn.jpg')detfilter=im.filter(ImageFilter.DETAIL)#图像细节增强detfilter.show()confilter=im.filter(ImageFilter.CONTOUR)#图像轮廓效果confilter.show()smtfilter=im.filter(ImageFilter.SMOOTH)#图像平滑smtfilter.show()sharpfilter=im.filter(ImageFilter.SHARPEN)#图像锐化sharpfilter.show()enhbrightim=ImageEnhance.Brightness(im)brightness=5eng_bri=enhbrightim.enhance(brightness)#图像亮度增强为原来的1.5倍eng_bri.show()enhbrightim=ImageEnhance.Contrast(im)contrast=5enh_con=enhbrightim.enhance(contrast)#图像对比度增强为原1.5倍enh_con.show()

分别为细节增强、轮廓效果、平滑、锐化、亮度增强、对比度增强

 

 

PIL还支持对像素点的直接操作。例如将ai.jpg分离成三个颜色通道,对其中一个通道进行加强或减弱操作,再使用Merge将通道合并,从而改变图片的色调(冷暖色调的互换)等。如其中b层每个像素点的亮度增大20%

im=Image.open('csdn.jpg')r,g,b=im.split()out=b.point(lambda i:i*1.2)im=Image.merge('RGB',(r,g,b))im.show()7、序列图像处理

序列图像是将多帧图像保存在一个图像文件中,按照一定时间间隔播放形成动画效果。gif图片就是序列图像。PIL对这种动态图片也提供了基本的处理方法。当用open()打开这类图像文件时,会自动载入第一帧图像,使用 seek()和tell()方法可以在各帧之间移动。seek(frame)表示跳转到指定的图像帧,tell()返回当前帧的序号

 例:

代码采用了try-except结构,首先执行try中的语句,当图像已经跳转到最后一副图像帧时,再次跳转(im.tell()+1)会出现异常,此时执行except后面的语句,程序结束。

"""图像的序列操作"""from PIL import Image# 读入gif文件im=Image.open('pai.gif')try: im.save('frame{:02d}.png'.format(im.tell())) # 保存图像帧为png文件 while True: # 跳转到下一帧图像 im.seek(im.tell()+1) im.save('frame{:02d}.png'.format(im.tell()))except: print('处理结束')

本文链接地址:https://www.jiuchutong.com/zhishi/298962.html 转载请保留说明!

上一篇:【超直白讲解opencv RGB与BGR】RGB模式与BGR模式有什么不同,如何相互转换?

下一篇:游戏玩的多,陪玩你了解的多吗?用Python来采集陪玩数据,看看行情和美照(玩很多游戏的人)

  • 快手网名怎么可以放到后边(快手网名可以叫什么名字)

    快手网名怎么可以放到后边(快手网名可以叫什么名字)

  • 华为手机屏幕下面返回怎么显示出来(华为手机屏幕下面有个X号)

    华为手机屏幕下面返回怎么显示出来(华为手机屏幕下面有个X号)

  • 蓝牙耳机长时间不用会坏吗(蓝牙耳机长时间不用怎么激活电池)

    蓝牙耳机长时间不用会坏吗(蓝牙耳机长时间不用怎么激活电池)

  • h310支持几代cpu(主板和cpu对照一览表)

    h310支持几代cpu(主板和cpu对照一览表)

  • 电脑图片剪切按哪个键(电脑上剪切照片的键)

    电脑图片剪切按哪个键(电脑上剪切照片的键)

  • 超话帖子发送成功却没有显示(超话帖子发不出去怎么回事)

    超话帖子发送成功却没有显示(超话帖子发不出去怎么回事)

  • 邮箱能发文件夹出去吗(邮箱能发送文件夹吗?)

    邮箱能发文件夹出去吗(邮箱能发送文件夹吗?)

  • 骁龙865和765g有什么区别(骁龙865和骁龙765g的性能差多少)

    骁龙865和765g有什么区别(骁龙865和骁龙765g的性能差多少)

  • 充电宝160wh是多少毫安(充电宝16wh是什么意思)

    充电宝160wh是多少毫安(充电宝16wh是什么意思)

  • 微信怎么把黑色页面改成白色(微信怎么把黑色变成白色主题)

    微信怎么把黑色页面改成白色(微信怎么把黑色变成白色主题)

  • 怎么查无线网是否欠费(怎么查无线网是否到期)

    怎么查无线网是否欠费(怎么查无线网是否到期)

  • 来电提醒有必要开通吗(来电提醒有什么用处)

    来电提醒有必要开通吗(来电提醒有什么用处)

  • 华为手机哪些自带软件可以删除(华为手机哪些自带红外线)

    华为手机哪些自带软件可以删除(华为手机哪些自带红外线)

  • 抖音巨量引擎推广有没有效果(抖音巨量引擎推广直播)

    抖音巨量引擎推广有没有效果(抖音巨量引擎推广直播)

  • 数字电视和网络电视的区别(数字电视和网络电视哪个清晰)

    数字电视和网络电视的区别(数字电视和网络电视哪个清晰)

  • vivo手机usb调试在哪(vivo手机的usb调试功能在哪里打开)

    vivo手机usb调试在哪(vivo手机的usb调试功能在哪里打开)

  • 苹果旁白模式怎么解锁(苹果旁白模式怎么解锁屏幕)

    苹果旁白模式怎么解锁(苹果旁白模式怎么解锁屏幕)

  • 手机卡能上网不能打电话和接电话(手机卡能上网不能发短信)

    手机卡能上网不能打电话和接电话(手机卡能上网不能发短信)

  • 手机怎么取消流量自动关闭(手机怎么取消流量限制)

    手机怎么取消流量自动关闭(手机怎么取消流量限制)

  • 开发安卓app用什么语言(开发安卓app用什么编译器)

    开发安卓app用什么语言(开发安卓app用什么编译器)

  • 订单备注是给谁看的(订单备注买家能看到吗)

    订单备注是给谁看的(订单备注买家能看到吗)

  • 手机nfc功能怎么打开(手机nfc功能怎么扫描)

    手机nfc功能怎么打开(手机nfc功能怎么扫描)

  • 直播声卡的主要功能是(直播声卡的主要作用是)

    直播声卡的主要功能是(直播声卡的主要作用是)

  • 抖音资料为什么被锁定(抖音资料为什么暂时被锁定)

    抖音资料为什么被锁定(抖音资料为什么暂时被锁定)

  • 在高德地图上怎么创建位置(在高德地图上怎么设置不走高速)

    在高德地图上怎么创建位置(在高德地图上怎么设置不走高速)

  • 好分数家长版怎么删除绑定的学生(好分数家长版怎么绑定学生账号)

    好分数家长版怎么删除绑定的学生(好分数家长版怎么绑定学生账号)

  • cdr名片设计底纹怎么不能改色(cdr怎么制作名片背景颜色)

    cdr名片设计底纹怎么不能改色(cdr怎么制作名片背景颜色)

  • ps怎么给人补头发(ps怎么增补头发)

    ps怎么给人补头发(ps怎么增补头发)

  • sxgdsenu.exe - sxgdsenu是什么进程 有什么用

    sxgdsenu.exe - sxgdsenu是什么进程 有什么用

  • 【Vue 快速入门系列】Vue数据实现本地存储、自定义事件绑定、全局事件总线、$nextTick的使用(vue快速入门与实战开发)

    【Vue 快速入门系列】Vue数据实现本地存储、自定义事件绑定、全局事件总线、$nextTick的使用(vue快速入门与实战开发)

  • 在报税显示缺少发票信息
  • 3901100090的暂定税率
  • 其他综合收益属于当期损益吗
  • 购买信息技术服务费摘要怎么写
  • 缴纳个人社保在哪里可以缴
  • 能从科目余额表入账吗
  • 房屋买卖终止协议
  • 银行收到一笔款可以分开入账吗
  • 存货换入无形资产考虑增值税
  • 银票贴现需要银行授信吗
  • 进项税发票不认证可以吗
  • 小规模纳税人简易计税方法
  • 养牛场增值税的税率是多?
  • 自来水费缴纳后多久来水
  • 所得税调增调减项目
  • 资产减值损失汇算清缴调整表
  • 外商企业需要交企业所得税吗
  • 开发项目未竣工前土地使用税怎么缴纳
  • 淘宝无票采购账务处理
  • 制造行业库存该怎么处理
  • 研发样机转销售合法吗
  • 应付的职工薪酬
  • win10回退到以前版本失败
  • 电脑医生怎么卸载
  • bios boot设置
  • 建筑企业总产值是什么
  • 苹果mac系统怎么截屏快捷键
  • 外包社保会计分录
  • 如何关闭win11系统
  • 一些出口商为什么要倾销
  • 电脑上fci是什么文件
  • 公司收到发票怎么做账
  • bfsvc.exe是什么
  • linux中loop的含义
  • 股份支付费用是股权激励成本吗?
  • 预付款开票税务问题怎么解决
  • 餐饮业原料采购都包括哪些
  • 30个极致实用的东西
  • 企业工资薪金和职工福利费等支出税前扣除问题的公告
  • 浏览器集成什么意思
  • 完美解决在ThinkPHP控制器中命名空间的问题
  • cloa框架
  • 职工报销医药费属于什么会计科目
  • php for break
  • 企业捐赠的资产如何入账
  • 发票报销可以跨年吗
  • day14-HTTP01
  • 什么叫动量交易
  • 企业代收水电费算不算收入
  • 2021发票认证
  • sql将一个表中的值赋给另一个表
  • 开票机号可以随便填吗
  • 公司基本户里的钱有利息吗
  • 小规模纳税人免税怎么做账
  • 公司跟个体户的税收
  • 存货盘点后的检查
  • 子公司注销母公司收回现金流
  • 厂房违建如何处理
  • 登记现金日记账收入栏的依据有
  • 事业单位的非税收入账务处理
  • 资产减值损失包含
  • winXP系统截图
  • xp系统安装软件重复
  • win8打开运行的快捷键是什么
  • 如何解决孩子多动
  • linux datetime命令
  • mac os xv10.11
  • GhostXP_SP3活力版V3.0_系统之家首发
  • bootstrap内容
  • jquery fadein 源码
  • unity 调用java
  • python,for循环
  • unity jsonobject
  • 开源安卓app
  • js跨域是什么意思
  • jquery常用插件有哪些
  • android入门教程
  • 电子税务局怎么申报
  • 创新税务稽查方案
  • 广东省深圳市地图最新版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设