此前完成了python3.6, PyCharm2017以及各图像处理相关类库的安装,接下来学习书中第一章“基本的图像操作与处理”,与书中方法一样,均按相关代码进行解析和学习。
基本的图像处理功能和操作,如缩放,裁剪,旋转或颜色转换等。

1. 读取图像并显示
from PIL import Image
from pylab import *

pil_im = Image.open('empire.jpg')
figure()
gray()
axis('off')
imshow(pil_im)

-备注:
open函数用来打开一幅图像,确保''中间的图像路径正确,默认的当前目录为 welcome.py(即所创建的project中的py文件)作为的目录。figure命令创建一个图像窗口,imshow(pil_im)命令在当前窗口中显示pil_im图像。

2. 转换图像为灰度图
pil_im = array(Image.open('empire.jpg').convert('L'))

-备注:
convert('L')命令将打开的'empire.jpg'转换为灰度图。另外,采用array()将图像转换为数组,原因在于如果不转换为数组后续的imshow()函数无法正常显示图像。

3. 剪切部分图像以及粘贴
pil_im = Image.open('empire.jpg')
box = (100, 100, 400, 400)
region = pil_im.crop(box)
region = region.transpose(Image.ROTATE_180)
pil_im.paste(region, box)

-备注:
box确定了要剪切的部分图像区域的左上角坐标(100,100)和右下角坐标(400,400),crop函数从图像中剪切出这一部分图像块,region.transpose(Image.ROTATE_180)表示对region采用旋转180度(默认为逆时针)操作,pil_im.paste(region,box)将region粘贴在pil_im的box区域。

4. 制造缩略图以及存储
pil_im = Image.open('empire.jpg')
size = (128, 128)
pil_im.thumbnail(size)
pil_im.save('empire.jpg_thumbnail.jpg')

-备注:
size给出了缩放的比例,然后使用thumbnail(size)按照size中较小的为基准,根据其与对应的原图的长(或宽)之间的比例将pil_im缩小,使用save('empire.jpg_thumbnail.jpg')将缩小后的pil_im存储为“empire.jpg_thumbnail.jpg”,同上,默认路径为project主程序所在文件夹。

5. 调整图像尺寸

pil_im = Image.open('empire.jpg')
pil_im = pil_im.resize(size)

-备注:
利用上文一样的size(128,128),将图像pil_im缩小为高,宽分别为128和128的图像。resize与thumbnail不同在于其支持任意比例缩放,缩放后的图像的尺寸就是size中的两个参数所表示的尺寸。对比上面的经过thumbnail处理的图像,高与宽分别为128和91,即thumbnail只支持等比例缩放。

6. 旋转图像

pil_im = Image.open('empire.jpg')
pil_im = pil_im.rotate(45)

-备注:
rotate函数可以将图像旋转任意角度,方向默认为逆时针。

Python Computer Vision Programming学习笔记(二)——基本的图像操作与处理相关推荐

  1. OpenCv学习笔记(二)--Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解

    (一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1--Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类 2--创建一个Mat对象的方法很多,我们现在先看一下M ...

  2. python自动化办公脚本下载-基于python实现自动化办公学习笔记二

    word文件 (1)读word文件 import win32com import win32com.client def readWordFile(path): # 调用系统word功能,可以处理do ...

  3. 图像处理学习笔记01:matlab图像操作基础

    读取和写入图像文件 imread函数,读取图像文件 imwrite函数,写入文件,通过指定不同后缀名可以修改图像的格式. imfinfo函数,读取图像文件的属性. 示例1 >> i=imr ...

  4. Python第三方库pygame学习笔记(一)

    Pygame Python最经典的2D游戏开发第三方库,也支持3D游戏开发 Pygame适合用于游戏逻辑验证.游戏入门及系统演示验证 Pygame是一种游戏开发引擎,基本逻辑具有参考价值 pygame ...

  5. 华清远见fs4412开发板学习笔记(二)

    fs4412开发板学习笔记(二) Linux 1.终端操作 1)打开终端 ctrl + alt + t 2)放大 ctrl + shift + "+" 3)缩小 ctrl + &q ...

  6. python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法

    python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0. zfill()方法语法: ...

  7. python学习笔记(二) 基本运算

    python学习笔记(二) 基本运算 1. 条件运算 基本语法 if condition1: do somethings1elif condition2: do somethings2else: do ...

  8. (Python入门)学习笔记二,Python学习路线图

    (Python入门)学习笔记二,Python学习路线图 千里之行始于足下,谋定而后动,冰冻三尺非一日之寒.之所以说这三句话,就是对于下面整理的路线图,即不让自己感觉路途的遥远而感到达到巅峰神界的遥遥无 ...

  9. wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)

    如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...

  10. 36篇博文带你学完opencv :python+opencv进阶版学习笔记目录

    基础版学习笔记传送门 36篇博文带你学完opencv :python3+opencv学习笔记汇总目录(基础版) 进阶版笔记 项目 opencv进阶学习笔记1: 调用摄像头用法大全(打开摄像头,打开摄像 ...

最新文章

  1. C专家编程复习摘要一
  2. C语言试题六十六之请编写函数实现三个数从小到大排序
  3. [html] 你有使用过MediaRecorder吗?说说它的运用场景有哪些?
  4. miniconda3 安装numpy_OpenCV4在Ubuntu1810/1604安装
  5. php $handle,laravel $kernel-handle 报错的解决办法_PHP开发框架教程
  6. TypeScript完全解读(26课时)_14.ES6和Nodejs中的模块
  7. java anotherstring_徐葳【2019版最新】40小时掌握Java语言之06String类
  8. python程序设计基础
  9. 简单介绍小系统车载中控导航上蓝牙模块
  10. Nero Burning ROM 2014 16.0.03000 精简安装版(功能最强大的光盘刻录软件)
  11. 基于STM32的智能小车--避障设计
  12. Android状态栏详解(全网最详)
  13. ip 子网数目 网络号 主机号 广播地址 可用IP地址范围
  14. 无法引导Win11卡在GNU GRUB界面
  15. html文件名解压乱码怎么办,压缩文件解压后乱码怎么办?解压乱码解决办法
  16. c语言fl,用C语言操作SPMC75内部FLSASH
  17. div标签和span标签区别
  18. 睡眠经济崛起,智能床垫品牌们的可为和有为
  19. 信息与通信工程——重要国际学术会议和国际顶级期刊(仅供参考)
  20. Spark2.10中使用累加器、注意点以及实现自定义累加器

热门文章

  1. 乐高创意机器人moc_LEGO MOC 国外资源分享 之二十四 创意机器人集粹一
  2. 如何使用你的 ETH 赚取更多 ETH?这 5 大策略了解一下
  3. Spring Boot 监听 Activemq 中的特定 topic ,并将数据通过 RabbitMq 发布出去
  4. matplotlib实现区域颜色填充
  5. 安岷老师 精益生产管理专家
  6. 我花10个小时,写出了小白也能看懂的阿里数据中台分析
  7. TP5.1实现数组内容的分页和数据渲染
  8. 如何共享计算机网络,电脑怎么共享网络给手机上网
  9. JAVA实现百度网盘文件上传
  10. 西游记中天庭与西天的关系