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