当前位置:   article > 正文

python 图像处理(一)_图像处理技术 python

图像处理技术 python

图像处理

简介:图像处理,利用计算机算法,对图像进行分析/操作的处理技术,包括图像的存储、表示、提取、操作、增强、复原和解释。

1.图像处理概念

图像概念
最简单图像(单通道,二值或单色,灰度或黑白图像f(x,y))
彩色RGB图像(三通道(r,g,b))

描述图像方法:空间数字化、振幅数字化
空间数字化:空间坐标(x,y)数字化图像采样
振幅数字化:灰度量化
图像

2.图像处理基本流程

图像处理流程基本步骤如下:

  1. 图像的获取与存储
  2. 加载图像数据至内存并存盘
  3. 操作、增强和复原
    (1)图像转换(灰度转化)
    (2)图像质量增强(模型变清晰)
    (3)图像去噪,图像复原
  4. 图像分割
  5. 信息提取/表示
  6. 图像理解/图像结束
    (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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

下图为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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

PIL图像操作裁剪与调整尺寸
(1)裁剪

im=Image.open('data.jpg')
im_c=im.crop((175,75,320,200))
  • 1
  • 2

(2)调整尺寸
调整为较大图像

im_large=im.resize((im.width*5,im.height*5),Image.BILINEAR)
#这里使用了双线值插值Image.BILINEAR,采样技术放大
  • 1
  • 2

调整为较小图像

im_small=im.resize((im.width//5,im.height//5),Image.ANTALIAS)
#这里使用抗混叠技术采样Image.ANTALIAS
  • 1
  • 2

灰度变化,镜像图像等

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/734357
推荐阅读
相关标签
  

闽ICP备14008679号