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