1. OpenCV與OpenGL差別
https://www.zhihu.com/question/20212016
一個是讓機器識别東西的,OpenCV是給電腦做眼睛的。
一個是讓機器計算出更好畫面的,OpenGL用在遊戲渲染方面很多。
OpenCV(Open Source Computer Vision Library)是一個基于(開源)發行的跨平台計算機視覺庫,OpenGL(全寫Open Graphics Library)是個定義了一個跨程式設計語言、跨平台的程式設計接口規格的專業的圖形程式接口。
2. OpenCV安裝(三種方式,推薦whl方式)
方式一:官網下載下傳 或者https://sourceforge.net/projects/opencvlibrary/files/,安裝後如下位置(
...\opencv\build\python\2.7\x64
)的pyd拷貝到
Python27/lib/site-packeges
中,本方式隻支援python27。注意版本和xx位的對應。
方式二:
pip install opencv-python
,或者(方式三:)使用whl檔案
3. 讀取、儲存圖檔
import cv2
img=cv2.imread("../../source/gril.jpg",cv2.IMREAD_COLOR)#或者用整數1代替表示彩圖,IMREAD_GRAYSCALE:0灰階圖,下同
cv2.namedWindow("測試",cv2.WINDOW_NORMAL)#圖像随視窗伸縮,預設WINDOW_AUTOSIZE圖像大小自動調整不可更改
cv2.imshow("測試",img)
#名字“測試”區分不同的視窗
s=cv2.waitKey(0)
# waitKey(x);
# 等待x ms(如果x=0,那麼無限等待下去),如果在此期間有按鍵按下,則立即結束并傳回按下按鍵的ASCII碼,否則傳回-1
print(s)
if s==27:#esc鍵
cv2.imwrite('../../source/gril_copy.png',img)#儲存圖為png格式,傳回true/false
print("圖檔已儲存")
cv2.destroyAllWindows()
4 . matplotlib中顯示圖檔
import cv2
import matplotlib.pyplot as plt
img=cv2.imread("../../source/gril.jpg",cv2.IMREAD_COLOR)#彩圖,IMREAD_GRAYSCALE灰階圖
plt.imshow(img)
plt.xticks([])
plt.yticks([])
plt.show()
#opencv以BGR加載圖檔,matplotlib以RGB模式。
原圖見頭像,顯示如下。
import cv2
import matplotlib.pyplot as plt
img=cv2.imread("../../source/gril.jpg",cv2.IMREAD_COLOR)#彩圖,IMREAD_GRAYSCALE灰階圖
b,g,r=cv2.split(img)
img2=cv2.merge([r,g,b])
plt.imshow(img2)
plt.xticks([]),plt.yticks([]) # 不顯示坐标軸