图像处理
简介:图像处理,利用计算机算法,对图像进行分析/操作的处理技术,包括图像的存储、表示、提取、操作、增强、复原和解释。
1.图像处理概念
图像概念:
最简单图像(单通道,二值或单色,灰度或黑白图像f(x,y))
彩色RGB图像(三通道(r,g,b))
描述图像方法:空间数字化、振幅数字化
空间数字化:空间坐标(x,y)数字化图像采样
振幅数字化:灰度量化
2.图像处理基本流程
图像处理流程基本步骤如下:
- 图像的获取与存储
- 加载图像数据至内存并存盘
- 操作、增强和复原
(1)图像转换(灰度转化)
(2)图像质量增强(模型变清晰)
(3)图像去噪,图像复原 - 图像分割
- 信息提取/表示
- 图像理解/图像结束
(1)图像分类
(2)对象识别
3.图像输入/输出显示
PIL读取、保存和显示
from PIL import Image,ImageFont,ImageDraw im=Image.open("data.jpg") print(im.width,im.height,im.mode,im.format,type(im)) #显示图像 im.show() #用PIL函数convert()将彩色RGB转化为灰度,保存 im_g=im.convert('L') im_g.save('data.jpg')
matplotlib读取、保存和显示
import matplotlib.image as mpimg import matplotlib.pylab as plt im=mpimg.imread('data.jpg') print(im.shape,im.dtype,type(im)) plt.figure(figsize=(10,10)) plt.imshow(im) plt.axis('off') plt.show()
scikit-image读取、保存和显示
im=imread('data.jpg') print(im.shape,im.dtype,type(im)) #从图片RGB转化为HSV格式 hsv=color.rgb2hsv(im) hsv[:,:,1]=0.5 im1=color.hsv2rgb(hsv) imsave('data.jpg')
4.图像类型
图像有如下类型:
(1)单通道图像:每个像素由单个值表示,包括二值(单色,每个像素由0~1组成)和灰度图像(每个像素由8位表示,其值在0~255)
(2)多通道图像
三通道,RGB图像和HSV都是三通道图像,RGB由三元值(r,g,b),r,g,b分别表示红色、绿色、蓝色的颜值值
四通道图像(r,g,b,a),其中a表示的透明度
图像处理常用操作:
一种图像模式转换为另一种图像模式
im=imread('data.jpg') im_g=color.rgb2gray(im) plt.subplot(121) plt.imshow(im,cmap='gray') plt.axis('off') plt.subplot(122) plt.imshow(im_g,cmap='gray') plt.axis('off') plt.show()
下图为RGB格式图像转化为YIQ格式的矩阵计算:
图像数据结构转化为图像数据
图像数据结构用scikit-image表示
im=Image.open('data.jpg') im=np.array(im) imshow(im) plt.axis('off') plt.show() im=Image.fromarray(im) imshow(im)
PIL图像操作裁剪与调整尺寸
(1)裁剪
im=Image.open('data.jpg') im_c=im.crop((175,75,320,200))
(2)调整尺寸
调整为较大图像
im_large=im.resize((im.width*5,im.height*5),Image.BILINEAR) #这里使用了双线值插值Image.BILINEAR,采样技术放大
调整为较小图像
im_small=im.resize((im.width//5,im.height//5),Image.ANTALIAS) #这里使用抗混叠技术采样Image.ANTALIAS • 1 • 2
灰度变化,镜像图像等