# -*-coding:utf-8
# 使用opencv檢測程式效率
# 兩個函式:
# cv2.gettickcount():返回從參考點到這個函式被執行的時鐘數
# cv2.gettickfrequency():返回時鐘頻率
import cv2
import numpy as np
# # 使用範例 獲得函式執行時間
# e1 = cv2.gettickcount() # 執行開始時間(我的理解)
# # 所要執行的**
# e2 = cv2.gettickcount() # 之行結束時間(我的理解)
# time = (e2-e1)/cv2.gettickfrequency() # 得到函式執行時間
# 除了這種方法,還可以通過time.time()來獲得函式執行的時間
# opencv中的預設優化
# opencv中許多函式是優化過的,也有一些是沒有優化的,如果我們的編譯系統的是支援優化的話,
# 那麼在編譯的時候就會優化,可以通過cv2.useoptimized來檢視優化是否開啟,若沒有開啟,則可以
# 通過cv2.setuseoptimized()來開啟
# 預設
# print cv2.useoptimized()
# # 關閉
# cv2.setuseoptimized(false)
# print cv2.useoptimized()
# # 開啟
# cv2.setuseoptimized(true)
# print cv2.useoptimized()
# 結果:
# true
# false
# true
# 效率優化技術有些技術和程式設計方法可以讓我們最大的發揮 python 和 numpy 的威力。
# 首先用簡單的方式實現你的演算法(結果正確最重要),當結 果正確後,再使用上面的提到的方法
# 找到程式的瓶頸來優化它。
# 1. 盡量避免使用迴圈,尤其雙層三層迴圈,它們天生就是非常慢的。
# 2. 演算法中盡量使用向量操作,因為 numpy 和 opencv 都對向量操作進行 了優化。
# 3. 利用快取記憶體一致性。
# 4. 沒有必要的話就不要複製陣列。使用檢視來代替複製。陣列複製是非常浪費資源的。
# 就算進行了上述優化,如果你的程式還是很慢,或者說大的訓話不可避免的話, 你你應該嘗試使用其他的包,
# 比如說 cython,來加速你的程式。
opencv python學習筆記八
十 影象上的算術運算 常用運算有 加法 減法 位運算 cv2.add cv2.addweighted 函式原型 defadd src1,src2,dst none,mask none,dtype none defaddweighted src1,第乙個原陣列 alpha,第乙個原陣列的權值 src2...
opencv python學習筆記十一
14 幾何變換 移動,旋轉 仿射變換 常用函式 cv2.getperspectivetransform 函式原型 defgetperspectivetransform src,dst cv2.warpaffine 函式原型,接收 2 3的矩陣 defwarpaffine src,輸入源影象 m,透視...
OpenCV python學習筆記 二
不多說,上 全在裡面 coding utf 8 import numpy as np import cv2 目標 獲取畫素值並修改 獲取影象的資訊 影象的rio 圖象通道的拆分及合併 step1 獲取影象的資訊 讀取 讀入彩色圖和灰度圖 獲取資訊 影象的資訊包括 行 列 通道 影象資料型別 畫素數目...