zoukankan      html  css  js  c++  java
  • python3 openCV/PIL/matplotlib的简单使用

    # 查找资料,结合实例代码,至少比较三种Python图形处理库或图像处理库的异同点
    """
    1.openCV,底层由c/c++构成,运行速度较快
    2.PIL(Python Image Library),
    3.matplotlib,Matplotlib 是 Python 的绘图库。它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案
    
    """
    # open CV的简单使用
    def test_openCV():
        """
        轻量且高效,由一系列C函数和少量C++类构成,
        同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法
        可实现计算机图像、视频编辑
        广泛应用于图像识别、运动跟踪、机器视觉等领域
        """
        # 引入
        import cv2
        # 图像的读写操作
        image1 = cv2.imread('peiqi.png')
        # 灰度模式打开
        image2 = cv2.imread('peiqi.png',0)
        # 显示图片
        cv2.imshow('image', image1)#第一个为显示的图片名字,第二个为图片
        cv2.waitKey(0) #当值为0时刷新时间间隔为0
        cv2.imshow('image', image2)#第一个为显示的图片名字,第二个为图片
        cv2.waitKey(0)
        # 保存图片,此次保存灰度模式的佩奇
        cv2.imwrite('huidupeiqi.png',image2)#第一个参数为文件名,第二个为要保存的图像。
    
        pass
    
    # PIL 的简单使用
    def test_PIL():
        """
        PIL的三大功能
        1.图像归档(Image Archives)。
        PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等等。
        2.图像展示(Image Display)。
        PIL较新的版本支持包括Tk PhotoImage,BitmapImage还有Windows DIB等接口。PIL支持众多的GUI框架接口,可以用于图像展示。
        3.图像处理(Image Processing)。
        PIL包括了基础的图像处理函数,包括对点的处理,使用众多的卷积核(convolution kernels)做过滤(filter),还有颜色空间的转换。
        PIL库同样支持图像的大小转换,图像旋转,以及任意的仿射变换。
        PIL还有一些直方图的方法,允许你展示图像的一些统计特性。这个可以用来实现图像的自动对比度增强,还有全局的统计分析等。
        """
        # 引入
        # import PIL
        from PIL import Image
        # 图像的读写操作
        image1 = Image.open("peiqi1.png","r")
        print(image1)
        print(image1.size,image1.mode)
        # 保存图像
        # image1.save("peiqi1.png",'png')
        # 创建指定大小的缩略图,50*50
        image1.thumbnail((50,50),resample=Image.BICUBIC)
        # image1.show()
        image1.save("littlepeiqi.png",'png')
        # 图像裁剪,
        # 左上角x,y坐标,右下角的x,y坐标,规定图像的最左上角的坐标为原点(0,0),宽度的方向为x轴,高度的方向为y轴,
        # 每一个像素代表一个坐标单位
        box = (10,10,20,20)
        region = image1.crop(box)
        region.show()
        region.save("boxpeiqi.png", 'png')
        pass
    
    # scikit——image的简单使用
    def test_matplotlib():
        # 引入
        import matplotlib.pyplot as plt
        import numpy as np
        # 绘画简单的图形
        # 从[-1,1]中等距去50个数作为x的取值
        x = np.linspace(-1, 1, 50) #前两个为x的取值范围,后一个为取值个数,等距取值
    
        # 设置函数样式
        y1 = 2 * x + 1
        y2 = 2 ** x + 1
        # 第一个是横坐标的值x,第二个是纵坐标的值y
        plt.plot(x, y1)
        plt.plot(x, y2)
        """
        还可以设置多个线...
        """
    
        # 设置label标签/名称,带汉字会警告
        plt.xlabel("x")
        plt.ylabel("y")
    
        # 必要方法,用于将设置好的figure对象显示出来
        plt.show()
        pass
    
    if __name__ == '__main__':
    
        # 测试openCV
        # test_openCV()
        # test_PIL()
        test_matplotlib()
        pass
  • 相关阅读:
    文字标签和注释标签
    HTML文档的组成和标签的规范
    HTML概述
    javaWeb
    web开发的三层架构
    ASCII码表
    JDK的新特性
    Editplus的运行JAVA的配置
    Eclipse的断点调试
    Eclipse工作空间的基本配置
  • 原文地址:https://www.cnblogs.com/msdog/p/13060543.html
Copyright © 2011-2022 走看看