一、图像处理的常用开发方法

  • C、Visual C++:速度快,效率高,开发难度较大
  • C#:提供图像类,入门容易,效率较低;
  • Java:更适合网络开发;
  • Python:第三方莫亏啊丰富,开发效率低;
  • Delphi、VB:速度慢,开发效率低;

传统VC++图像处理的方法

  • 图像数据读取后放到哪里?
  • DIB设备无关位图文件;
  • 由于MFC没有封装处理与DIB位图相关的Windows API函数的类,所以奔着面向对象的思想,有必要设计一个CDib类;

传统VC++的处理方法——设计CDIB类

数字图像处理 第三章 Python图像编辑基础

传统VC++的处理方法——开发流程

  • 数字图像处理 第三章 Python图像编辑基础

Python开发工具

文本工具类
IDLE,Notepad++ ,Sublime Text
集成工具类
PyCharm,Wing,PyDev&Eclipse,Visual Studio,Anaconda&Spyder(PIL),Canopy

Python有关图像处理的库

  • PIL/Pillow:提供基础的数字图像处理,读出来的文件是PIL的类型;
  • Numpy:图像本质上是包含数据点像素的标准Numpy数组;
  • Scipy:像Numpy一样,可用于基本的图像处理和处理任务;
  • Matplotlib:提供图像和图形数据的可视化输出;
  • skimage:基于Scipy的图像处理包;
  • OpenCV-Python:OpenCV的Python APi;
  • SimpleCV;
  • Mahotas;

二、PIL、Pillow图像处理库

PIL图像处理库的用途

  • 图像归档(创建缩略图,转换图像格式,打印图像)
  • 图像展示,支持多的GUI框架接口
  • 图像处理(点处理,卷积核)

PIL/Pillow库的核心类

  • image类:核心类,加载图像,Imageopen(filename,mode):发开一张图像,返回一个Image对象;
    size属性:表示宽高;
    format属性:表示图像文件的格式,包括JPEG,PNG等;
    mode属性:表示图像的色彩模式’
  • Image.show():显示图像
  • Image.new(mode,(width,height),color):新建图像;

保存图像

  • Image.save(filename,format):保存指定格式的图像;
  • 数字图像处理 第三章 Python图像编辑基础

创建缩略图

  • Image.thumbnail(size,resample):创建缩略图;
  • 第一个参数是指定的缩略图大小;

几何变换

  • Image.transpose(method):返回反转或者旋转后的图像;
  • Image.resize(size,resamole,box):返回改变为size的图像;

裁剪、合并、粘贴、拷贝

  • Image.crop(box):返回矩形区域裁剪后的图像。

点处理与滤波器

  • Image.point(lut,mode):对图像像素进行点操作;
  • Image.filter(filter):对图像进行滤波操作;

颜色模式变换

  • Image.convert():颜色模式变换。

像素操作

  • Image.getpixel(xy):返回给指定位置的像素指。左上角为(0,0)
    如果图象为多通道,则返回一个元组;(8位灰度图像返回单值)
    该方法执行较慢;如果需要较打部分数据,可用load()或者getdata();
  • Image.putpixel(xy,color):改变单个像素点颜色;

图像增强子类——ImageEnhance

  • ImageEnhance:图像增强,增加亮度;

三、我们的基本思路

  • 直接调用有关高级图像处理库及函数完成——忽略细节;
  • 像素级操作(自己写代码进行处理)——初学者推荐;
  • 数字图像处理 第三章 Python图像编辑基础

像素级操作

  • 用Image.getpixel()和Image.putpixel()两个函数对图像进行像素级处理;
  • 取像素颜色值——处理——存放像素颜色值;
  • 处理过程可能需要遍历所有或部分像素,而核心的算法在中间的“处理”部分;

四、应用实例

  • 实验1 图像文件的读取与显示
  • 实验目的:通过编写和调试一个读取图像文件中图像数据的程序,加深对图像数据在计算机中存储格式的理解,并为后续打基础;
    熟悉Python开发环境,掌握Pillow库的基本使用方法;
  • 实验内容:用Python编写一个读取并显示图像文件的程序;

实验要等下节课再讲了,上边的图片都是直播的时候截的,全损画质嘿嘿。

相关文章: