• python 图片读取、添加等


    一 opencv

    复制代码
    import cv2 as cv
    # load 
    img = cv.imread(imagepath)
    # shape=(height, width, channel)
    h,w,c = img.shape
    # show
    cv.imshow('window_title', img)
    # save
    cv.imwrite(savepath, img)
    复制代码

    二 matplotlib

    复制代码
    import matplotlib.pyplot as plt # plt 用于显示图片
    import matplotlib.image as mpimg # mpimg 用于读取图片
    import numpy as np
    
    # load
    img = mpimg.imread('dog.jpg') 
    # 此时 img 就已经是一个 np.array 了,可以对它进行任意处理
    # height, width, channel=(360, 480, 3)
    h,w,c = img.shape 
    
    # show
    plt.imshow(img) # 显示图片
    plt.axis('off') # 不显示坐标轴
    plt.show()
    
    # save
    # 适用于保存任何 matplotlib 画出的图像,相当于一个 screencapture
    plt.savefig('fig_dog.png')
    复制代码

    注:

    (1)plt.imshow(image)中的图片的数据类型可以使np.array类型

             imshow()函数格式为:matplotlib.pyplot.imshow(X, cmap=None)

             X: 要绘制的图像或数组。

             cmap: 颜色图谱(colormap), 默认绘制为RGB(A)颜色空间。

             其它可选的颜色图谱如下列表:

    颜色图谱描述
    autumn 红-橙-黄
    bone 黑-白,x线
    cool 青-洋红
    copper 黑-铜
    flag 红-白-蓝-黑
    gray 黑-白
    hot 黑-红-黄-白
    hsv hsv颜色空间, 红-黄-绿-青-蓝-洋红-红
    inferno 黑-红-黄
    jet 蓝-青-黄-红
    magma 黑-红-白
    pink 黑-粉-白
    plasma 绿-红-黄
    prism  红-黄-绿-蓝-紫-...-绿模式
    spring 洋红-黄
    summer 绿-黄
    viridis 蓝-绿-黄
    winter 蓝-绿

    用的比较多的有gray,jet等,如:

    plt.imshow(image,plt.cm.gray)
    
    plt.imshow(img,cmap=plt.cm.jet)

    (2)mpimg 既提供了加载图像函数imread,又提供了保存图像函数imsave

    (3) plt.savefig函数 可以将显示在fig中图像保存下来

     延伸:图像缩放显示

    from scipy import misc
    lena_new_sz = misc.imresize(img, 0.5) # 第二个参数如果是整数,则为百分比,如果是tuple,则为输出图像的尺寸
    plt.imshow(img_new_sz)
    plt.axis('off')
    plt.show()

    三  PIL

    PIL加载显示图像有两种方法:

    其一:调用操作系统自带的图片浏览器来打开图片

    复制代码
    from PIL import Image
    # load
    im = Image.open('cat.jpg')
    
    # show
    im.show()
    
    """
    # 返回 image's size w,h = (480, 360)
    w,h = img.size
    
    # PIL.JpegImagePlugin.JpegImageFile
    type(img)
    
    # 直接调用Image类的save方法
    img.save('new_cat.png')
    """
    复制代码

    其二:让程序来绘制图片

    复制代码
    from PIL import Image
    import matplotlib.pyplot as plt
    img=Image.open('/home/wanghao/Pictures/001.jpg')
    plt.figure("head")
    plt.imshow(img)
    plt.show()
    复制代码

    总结一些绘制和显示图片常用的一些函数:

    函数名 功能 调用格式
    figure 创建一个显示窗口 plt.figure(num=1,figsize=(8,8)
    imshow 绘制图片 plt.imshow(image)
    show 显示窗口 plt.show()
    subplot 划分子图 plt.subplot(2,2,1)
    title 设置子图标题(与subplot结合使用) plt.title('origin image')
    axis 是否显示坐标尺 plt.axis('off')
    subplots 创建带有多个子图的窗口 fig,axes=plt.subplots(2,2,figsize=(8,8))
    ravel 为每个子图设置变量 ax0,ax1,ax2,ax3=axes.ravel()
    set_title 设置子图标题(与axes结合使用) ax0.set_title('first window')
    tight_layout 自动调整子图显示布局 plt.tight_layout()

    参考:https://blog.csdn.net/u010472607/article/details/78855816

  • 相关阅读:
    现代编程语言:Rust (铁锈,一文掌握钢铁是怎样生锈的)
    mRNA(阅读链接)
    技术的极限(13): 对过程和细节的可视化
    现代编程语言:TypeScript
    现代编程语言:JavaScript
    现代编程语言:zig
    现代编程语言:Python(蛇形遍历一颗树)
    炼金术(9): 简约而不简单,永不停歇的测试 -- always_run
    软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结
    退役记
  • 原文地址:https://www.cnblogs.com/abels0025/p/11301976.html
Copyright © 2020-2023  润新知