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

 

 

原文地址:https://www.cnblogs.com/marvintang1001/p/11227753.html