当前位置 : 主页 > 编程语言 > python >

python 图像处理(一)

来源:互联网 收集:自由互联 发布时间:2022-06-24
图像处理 简介:图像处理,利用计算机算法,对图像进行分析/操作的处理技术,包括图像的存储、表示、提取、操作、增强、复原和解释。 1.图像处理概念 图像概念: 最简单图像(单

图像处理

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

1.图像处理概念

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

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

2.图像处理基本流程

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

  • 图像的获取与存储
  • 加载图像数据至内存并存盘
  • 操作、增强和复原
    (1)图像转换(灰度转化)
    (2)图像质量增强(模型变清晰)
    (3)图像去噪,图像复原
  • 图像分割
  • 信息提取/表示
  • 图像理解/图像结束
    (1)图像分类
    (2)对象识别
    python 图像处理(一)_数据_02
  • 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格式的矩阵计算:
    python 图像处理(一)_图像处理_03
    图像数据结构转化为图像数据
    图像数据结构用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

    灰度变化,镜像图像等


    上一篇:python爬虫实例(百度图片、网站图片)
    下一篇:没有了
    网友评论