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
  • 相关阅读:
    2021.1.28 个人rating赛补题报告
    2021.1.23 个人rating赛补题报告
    2021.1.23 个人rating赛补题报告
    2020.12.14 个人训练赛补题报告
    2020.11.28 2020团体程序设计天梯赛补题报告
    2020.12.3 Codeforces Beta Round #73(Div2)补题报告
    Xhorse VVDI Prog V5.0.6 is Ready for BCM2 Adapter
    Program 2021 Ford Bronco All Keys Lost using VVDI Key Tool Plus
    Xhorse VVDI Prog V5.0.4 Software Update in July 2021
    How to use Xhorse VVDI2 to Exchange BMW FEM/BDC Module?
  • 原文地址:https://www.cnblogs.com/msdog/p/13060543.html
Copyright © 2011-2022 走看看