OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個基於(開源)發行的跨平台計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
為什么有OpenCV
計算機視覺市場巨大而且持續增長,且這方面沒有標准API,如今的計算機視覺軟件大概有以下三種:
1.研究代碼(慢,不穩定,獨立並與其他庫不兼容)
2.耗費很高的商業化工具(比如Halcon, MATLAB+Simulink)
3.依賴硬件的一些特別的解決方案(比如視頻監控,制造控制系統,醫療設備)這是如今的現狀。而標准的API將簡化計算機視覺程序和解決方案的開發。OpenCV致力於成為這樣的標准API。
OpenCV致力於真實世界的實時應用,通過優化的C代碼的編寫對其執行速度帶來了可觀的提升,並且可以通過購買Intel的IPP高性能多媒體函數庫(Integrated Performance Primitives)得到更快的處理速度。
下載了一個opencv試了一下,檢測代碼
1 import cv2 2 import numpy as np 3 4 img = cv2.imread("20131025164949562.jpg") 5 emptyImage = np.zeros(img.shape, np.uint8) 6 7 emptyImage2 = img.copy() 8 9 emptyImage3=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 10 #emptyImage3[...]=0 11 12 cv2.imshow("EmptyImage", emptyImage) 13 cv2.imshow("Image", img) 14 cv2.imshow("EmptyImage2", emptyImage2) 15 cv2.imshow("EmptyImage3", emptyImage3) 16 cv2.imwrite("cat2.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 5]) 17 cv2.imwrite("cat3.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 100]) 18 cv2.imwrite("cat.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0]) 19 cv2.imwrite("cat2.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9]) 20 cv2.waitKey (0) 21 cv2.destroyAllWindows()
修改圖片的格式,圖片質量,圖片的質量默認為95,范圍為0-100,對於PNG,第三個參數表示的是壓縮級別。cv2.IMWRITE_PNG_COMPRESSION,從0到9,壓縮級別越高,圖像尺寸越小。默認級別為3