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

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM