• python一些工作用到的第三方库


    1、opencv-python:

      https://blog.csdn.net/nature_XD/article/details/70768022

      用于实时处理计算机视觉方面的问题。使用NumPy数组。主要对图像的处理。

      使用:import cv2

      api:

      a: cv2.resize(filepath, size, (interpolation=))

    self.thumb_size = (600, 800)
    cv2.imread(str(file)), self.thumb_size, interpolation=cv2.INTER_CUBIC)
    
    """
    图像的扩大与缩小有专门的一个函数,cv2.resize(),那么关于伸缩需要确定的就是缩放比例,可以是x与y方向相同倍数,也可以单独设置x与y的缩放比例。另外一个就是在缩放以后图像必然就会变化,这就又涉及到一个插值问题。那么这个函数中,缩放有几种不同的插值(interpolation)方法,在缩小时推荐cv2.INTER_ARER,扩大是推荐cv2.INTER_CUBIC和cv2.INTER_LINEAR。默认都是cv2.INTER_LINEAR.
    """

      我们习惯的坐标表示 是 先 x 横坐标,再 y 纵坐标。在图像处理中,这种惯性思维尤其需要担心。因为在计算机中,图像是以矩阵的形式保存的,先行后列。所以,一张 宽×高×颜色通道=480×256×3 的图片会保存在一个 256×480×3 的三维张量中。图像处理时也是按照这种思想进行计算的(其中就包括 OpenCV 下的图像处理),即 高×宽×颜色通道。

      但是问题来了,cv2.resize这个api却是个小例外。因为它的参数输入却是:宽×高×颜色通道

      b:cv2.imwrite(path, img, imwrite_jpeg_quality)

      保存图像很简单,直接用cv2.imwrite即可。

      cv2.imwrite("D:\cat2.jpg", img)

      第一个参数是保存的路径及文件名,第二个是图像矩阵。其中,imwrite()有个可选的第三个参数,如下:

      cv2.imwrite("D:\cat2.jpg", img,[int(cv2.IMWRITE_JPEG_QUALITY), 5])

      第三个参数针对特定的格式: 对于JPEG,其表示的是图像的质量,用0-100的整数表示,默认为95。 注意,cv2.IMWRITE_JPEG_QUALITY类型为Long,必须转换成int。

    2、fire--自动生成命令行工具

      具体例子详见:https://blog.csdn.net/u010099080/article/details/70332074

      什么是命令行界面(CLI)?

     

      Fire 不仅仅是一个生成 CLIs 的工具,而且还可以调试 Python 程序,交互式的使用 Fire

     

    3、cython--兼容c/c++,加快python速度

    具体用法:https://zhuanlan.zhihu.com/p/24311879

        https://www.cnblogs.com/xxhbdk/p/10173234.html

    Cython 可以让我们方便地:

    • 用 Python 的语法混合编写 Python 和 C/C++ 代码,提升 Python 速度
    • 调用 C/C++ 代码

    cython与python不一样的地方:

    • Cython 程序的扩展名是 .pyx
    • cimport 是 Cython 中用来引入 .pxd 文件的命令。有关 .pxd 文件,可以简单理解成 C/C++ 中用来写声明的头文件,更具体的我会在后面写到。这里引入的两个是 Cython 预置的。
    • @cython.boundscheck(False) 和 @cython.wraparound(False) 两个修饰符用来关闭 Cython 的边界检查
    • Cython 的函数使用 cdef 定义,并且他可以给所有参数以及返回值指定类型。

    how to 编译这个pyx文件,使之生成一个.so的动态连接库文件?

    # 在命令行运行:
    
    python setup.py build_ext --inplace
    
    """
    setup.py是这个cython包里做指引的文件,运行它才能编译出so文件
    
    """

    4、fn -- 函数式编程(FP)

      https://github.com/kachayev/fn.py

    5、numpy --扩展程序库:支持大量的维度数组与矩阵运算

    https://www.runoob.com/numpy/numpy-tutorial.html

    NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:

    • 一个强大的N维数组对象 ndarray
    • 广播功能函数
    • 整合 C/C++/Fortran 代码的工具
    • 线性代数、傅里叶变换、随机数生成等功能

    6、pyyaml -- 专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便

    http://www.ruanyifeng.com/blog/2016/07/yaml.html

     

     

  • 相关阅读:
    Python基础-序列化模块
    dubbox
    小型供销系统
    MyBatis与SpringBoot整合案例(一)
    SpringBoot第二节
    SpringBoot第一节
    Dubbo案例SSM整合
    Dubbo生产者和消费者
    Zookeeper实战分布式锁
    Zookeeper Watcher和选举机制
  • 原文地址:https://www.cnblogs.com/marvintang1001/p/11227753.html
Copyright © 2020-2023  润新知