博主github:https://github.com/MichaelBeechan
博主CSDN:https://blog.csdn.net/u011344545

*****************************

Time:2017.5.31

Author:Michael Chan

Address:Chongqing University of Technology

Email:1252242281@qq.com 

Function:Python图像的基本操作和处理

****************************

Python之图像的基本操作和处理

一.PIL

PIL(Python Imaging Library,图像处理类库)提供了通用的图像处理功能,以及大量有用的基本图像操作,比如图像缩放、裁剪、旋转、颜色转换等。利用 PIL 中的函数,我们可以从大多数图像格式的文件中读取数据,然后写入最常见的图像格式文件中。PIL 中最重要的模块为 Image。

To load an image from a file, use the open function in the Image module.

>>>from PIL import Image

>>>im = Image.open(‘11.jpg’).convert(‘L’)

>>>print im.format, im.size, im.mode

>>>im.show()

The mode attribute defines the number and names of the bands in the image, and also the pixel type and depth. Common modes are “L” (luminance) for greyscale images, “RGB” for true colour images, and “CMYK” for pre-press images.

图像的颜色转换可以使用 convert() 方法来实现。要读取一幅图像,并将其转换成

灰度图像,只需要加上 convert('L')。

二.os模块:

python编程时,经常和文件、目录打交道,这是就离不了os模块。os模块包含普遍的操作系统功能,与具体的平台无关。以下列举常用的命令:

1. os.name()——判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix'

2. os.getcwd()——得到当前工作的目录。

3. os.listdir()——指定所有目录下所有的文件和目录名。

4. os.remove()——删除指定文件

5. os.rmdir()——删除指定目录

6. os.mkdir()——创建目录

  注意:这样只能建立一层,要想递归建立可用:os.makedirs()

7. os.path.isfile()——判断指定对象是否为文件。是返回True,否则False

8. os.path.isdir()——判断指定对象是否为目录。是True,否则False。

9. os.path.exists()——检验指定的对象是否存在。是True,否则False.

10. os.path.split()——返回路径的目录和文件名。

11. os.getcwd()——获得当前工作的目录(get current work dir)

12. os.system()——执行shell命令。

注意:此处运行shell命令时,如果要调用python之前的变量,可以用如下方式:

var=123

os.environ['var']=str(var) //注意此处[]内得是 “字符串”

os.system('echo $var')

13. os.chdir()——改变目录到指定目录

14. os.path.getsize()——获得文件的大小,如果为目录,返回0

15. os.path.abspath()——获得绝对路径。

16. os.path.join(path, name)——连接目录和文件名。

17.os.path.basename(path)——返回文件名

18. os.path.dirname(path)——返回文件路径

19. 获得程序所在的实际目录

import os

import sys

if __name__ == "__main__":

print os.path.realpath(sys.argv[0])

print os.path.split(os.path.realpath(sys.argv[0]))

print os.path.split(os.path.realpath(sys.argv[0]))[0]

运行结果:

E:\python 2.7.13

('E:\\', 'python 2.7.13')

E:\

三.python os.path模块

os.path.abspath(path) #返回绝对路径

os.path.basename(path) #返回文件名

os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。

os.path.dirname(path) #返回文件路径

os.path.exists(path)  #路径存在则返回True,路径损坏返回False

os.path.lexists  #路径存在则返回True,路径损坏也返回True

os.path.expanduser(path)  #把path中包含的"~"和"~user"转换成用户目录

os.path.expandvars(path)  #根据环境变量的值替换path中包含的”$name”和”${name}”

os.path.getatime(path)  #返回最后一次进入此path的时间。

os.path.getmtime(path)  #返回在此path下最后一次修改的时间。

os.path.getctime(path)  #返回path的大小

os.path.getsize(path)  #返回文件大小,如果文件不存在就返回错误

os.path.isabs(path)  #判断是否为绝对路径

os.path.isfile(path)  #判断路径是否为文件

os.path.isdir(path)  #判断路径是否为目录

os.path.islink(path)  #判断路径是否为链接

os.path.ismount(path)  #判断路径是否为挂载点()

os.path.join(path1[, path2[, ...]])  #把目录和文件名合成一个路径

os.path.normcase(path)  #转换path的大小写和斜杠

os.path.normpath(path)  #规范path字符串形式

os.path.realpath(path)  #返回path的真实路径

os.path.relpath(path[, start])  #从start开始计算相对路径

os.path.samefile(path1, path2)  #判断目录或文件是否相同

os.path.sameopenfile(fp1, fp2)  #判断fp1和fp2是否指向同一文件

os.path.samestat(stat1, stat2)  #判断stat tuple stat1和stat2是否指向同一个文件

os.path.split(path)  #把路径分割成dirname和basename,返回一个元组

os.path.splitdrive(path)   #一般用在windows下,返回驱动器名和路径组成的元组

os.path.splitext(path)  #分割路径,返回路径名和文件扩展名的元组

os.path.splitunc(path)  #把路径分割为加载点与文件

os.path.walk(path, visit, arg)  #遍历path,进入每个目录都调用visit函数,visit函数必须有

3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有

文件名,args则为walk的第三个参数

os.path.supports_unicode_filenames  #设置是否支持unicode路径名

Python练习 | Python之图像的基本操作和处理相关推荐

  1. python opencv 图像切割_【OpenCV+Python】图像的基本操作与算术运算

    图像的基本操作 在上个教程中,我们介绍了使用鼠标画笔的功能.本次教程,我们将要谈及OpenCV图像处理的基本操作. 本次教程的所有操作基本上都和Numpy相关,而不是与OpenCV相关.要使用Open ...

  2. Python,OpenCV骨架化图像并显示(skeletonize)

    Python,OpenCV骨架化图像并显示(skeletonize) 1. 效果图 2. 源码 参考: 1. 效果图 自己画一张图,原图 VS 骨架效果图如下: opencv logo原图 VS 骨架 ...

  3. 使用Python,OpenCV制作图像Mask——截取ROIs及构建透明的叠加层

    使用Python,OpenCV制作图像Mask--截取ROIs及构建透明的叠加层 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用OpenCV制作Mask图像掩码.使用位运算和图像掩码允许我们只 ...

  4. 使用Python,OpenCV实现图像和实时视频流中的人脸模糊和马赛克

    使用Python,OpenCV实现图像和实时视频流中的人脸模糊和人脸马赛克 1. 效果图 2. 原理 2.1 什么是人脸模糊,如何将其用于人脸匿名化? 2.2 执行人脸模糊/匿名化的步骤 3. 源码 ...

  5. 使用Python和OpenCV检测图像中的条形码

    使用Python和OpenCV检测图像中的条形码 1. 效果图 2. 算法的步骤 3. 源码 参考 这篇博客将介绍使用计算机视觉和图像处理技术进行条形码检测的必要步骤,并演示使用Python编程语言和 ...

  6. 使用Python,OpenCV查找图像中的最亮点

    Python,OpenCV找出图像中的最亮点 1. 原理 2. 优化 3. 效果图 4. 源码 参考 这篇博客将向您展示如何使用Python和OpenCV查找图像中的最亮点,以及应用单行预处理代码-- ...

  7. 使用Python和OpenCV在图像之间执行超快速的颜色转换

    使用Python和OpenCV在图像之间执行超快速的颜色转换 1. 效果图 2. 原理 2.1 颜色转移算法 2.2 步骤 2.3 算法改进 3. 源码 参考 这篇博客将介绍如何使用Python和Op ...

  8. 使用Python、OpenCV翻转图像(水平、垂直、水平垂直翻转)

    使用Python.OpenCV翻转图像(水平.垂直.水平垂直翻转) 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Python.OpenCV翻转图像,类似于cv2.rotate(). 沿y轴水 ...

  9. 使用Python,OpenCV计算图像直方图(cv2.calcHist)

    使用Python,OpenCV计算图像直方图(cv2.calcHist 1. 效果图 2. 原理 2.1 什么是图像直方图? 2.2 计算直方图 2.3 可视化蒙版区域 3. 源码 参考 这篇博客将介 ...

最新文章

  1. linux svn安装
  2. DualLinkList
  3. 有点小激动-Index Condition Pushdown Optimization
  4. CSS:你真的会用 z-index 吗?
  5. jquery(ajax)+ashx简单开发框架(原创)
  6. linux常用高级命令,Linux常用高级文件操作命令
  7. [BZOJ5329][Sdoi2018]战略游戏 圆方树+虚树
  8. linux经典命令-Web服务器管理
  9. 月入5000,你有什么资格谈生活
  10. 从零开始用Python3做数据分析
  11. 模糊控制算法实例matlab程序
  12. mac 中用到的svn命令 持续更新
  13. python爬虫菜鸟驿站_爬30层楼、扛40斤……5万菜鸟驿站春节快递不打烊
  14. 实验一 单片机 绘制原理图
  15. excel服务器导出文件,excel服务器导出文件夹
  16. Springboot连接Redis超时问题解决
  17. python switch函数
  18. Linux基础、vim、find命令等
  19. 安装mathtype6.9时显示缺少MT Extra字体问题
  20. 喝咖啡有饱腹感减肥 赛乐赛怎么样

热门文章

  1. BZOJ 1920 Luogu P4217 [CTSC2010]产品销售 (模拟费用流、线段树)
  2. android xml 删除控件,android-cordova插件rm cordova-plugin-whitelist不会更改config.xml,因此在构建时将被读取...
  3. 2020-11-30 离散系统自适应控制中的一个关键性引理及证明
  4. 实战:SQL sever如何实现同一列上下行运算?
  5. C# 计算IP段之间的IP列表
  6. android -自定义view
  7. uabntu18.04 安装mysql5.7
  8. 编写uwsgi后台启动文件
  9. jQ复制按钮的插件zclip
  10. 游戏中的对象资源信息管理