Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略
Py之cv2:cv2庫(OpenCV,opencv-python)的簡介、安裝、使用方法(常見函數、方法等)最強詳細攻略
?
目錄
關于OpenCV簡介
OpenCV應用領域
1、計算機視覺領域方向
2、計算機操作底層技術
安裝OpenCV的的兩種方法
T1、使用whl文件法
T2、直接命令法 ?
T3、Anaconda 環境下安裝
OpenCV常見函數、方法
0、基本庫函數
1、圖像基本運算
2、Image.open 和cv2.imread 的區別及其轉換
?
相關文章:
Py之cv2:cv2庫(OpenCV)的簡介、安裝、使用方法(常見函數、方法等)最強詳細攻略
CV:計算機視覺技術之圖像基礎知識(一)—以python的cv2庫來了解計算機視覺圖像基礎(傅里葉變換-頻域-時域/各種濾波器-線性-非線性-均值-中值-高斯-雙邊)
CV:計算機視覺圖像的基礎知識—以python的cv2庫來了解計算機視覺圖像基礎(邊緣檢測算子+平滑+輪廓標注+形態學+金字塔+傅里葉變換)—代碼實現
CV:計算機視覺技術之圖像基礎知識(一)—以python的cv2庫來了解計算機視覺圖像基礎—代碼實現(圖像顯示+加文本+變換+通道)—圖像基礎各種操作(函數及案例)
CV:計算機視覺技術之圖像基礎知識(二)—以python的skimage和numpy庫來了解計算機視覺圖像基礎(圖像存儲原理-模糊核-銳化核-邊緣檢測核,進階卷積神經網絡(CNN)的必備基礎)
CV:利用python的cv2庫實現圖像數據增強—隨機裁剪、隨機旋轉、隨機hsv變換、隨機gamma變換代碼實現
?
?
關于OpenCV簡介
? ? ? ?OpenCV是一個基于BSD許可(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。 OpenCV用C++語言編寫,它的主要接口也是C++語言,但是依然保留了大量的C語言接口。?
? ? ? ?在計算機視覺項目的開發中,OpenCV作為較大眾的開源庫,擁有了豐富的常用圖像處理函數庫,采用C/C++語言編寫,可以運行在Linux/Windows/Mac等操作系統上,能夠快速的實現一些圖像處理和識別的任務。此外,OpenCV還提供了Java、python、cuda等的使用接口、機器學習的基礎算法調用,從而使得圖像處理和圖像分析變得更加易于上手,讓開發人員更多的精力花在算法的設計上。
?
OpenCV應用領域
1、計算機視覺領域方向
- 1、人機互動
- 2、物體識別
- 3、圖像分割
- 4、人臉識別
- 5、動作識別
- 6、運動跟蹤
- 7、機器人
- 8、運動分析
- 9、機器視覺
- 10、結構分析
- 11、汽車安全駕駛
2、計算機操作底層技術
?
安裝OpenCV的的兩種方法
1、幾點注意事項:
- 安裝的時候是 opencv_python,但在導入的時候采用 import cv2。
- 因為OpenCV依賴一些庫,可以在本博客中查找一些依賴庫的安裝方法,例如安裝Numpy方法等,本博客應有盡有!
T1、使用whl文件法
先去官網https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv,下載相應Python版本的OpenCV的whl文件,如本人下載的opencv_python?3.4.1?cp36?cp36m?win_amd64.whl,然后在whl文件所在目錄下,命令 進行安裝即可
pip install opencv_python?3.4.1?cp36?cp36m?win_amd64.whl
T2、直接命令法 ?
pip install opencv-python ?
?
最后,檢測安裝情況
哈哈,大功告成!
?
T3、Anaconda 環境下安裝
pip install?opencv-python? ? ? //Anaconda 環境下安裝,先打開Anaconda Prompt,再輸入本命令進行安裝!
?
20191128更新記錄
?
?
?
OpenCV常見函數、方法
Welcome to OpenCV-Python Tutorials’s documentation!
CV:計算機視覺圖像的基礎知識—以python的cv2庫來了解計算機視覺圖像基礎
?
0、基本庫函數
cv2.imread(filepath,flags)? ? ?#讀入一張圖像
- filepath:要讀入圖片的完整路徑
- flags:讀入圖片的標志?
- cv2.IMREAD_COLOR:默認參數,讀入一副彩色圖片,忽略alpha通道
- cv2.IMREAD_GRAYSCALE:讀入灰度圖片
- cv2.IMREAD_UNCHANGED:顧名思義,讀入完整圖片,包括alpha通道
cv2.imshow(wname,img)? ? ?#顯示圖像
- 第一個參數是顯示圖像的窗口的名字
- 第二個參數是要顯示的圖像(imread讀入的圖像),窗口大小自動調整為圖片大小
cv2.imwrite(file,img,num)? ??#保存一張圖像
- 第一個參數是要保存的文件名
- 第二個參數是要保存的圖像。可選的第三個參數,它針對特定的格式:對于JPEG,其表示的是圖像的質量,用0 - 100的整數表示,默認95。
- 第三個參數表示的是壓縮級別。默認為3.
img.copy()? ? #圖像復制
?
cv2.cvtColor()? ? ? #圖像顏色空間轉換
- img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY) ? #灰度化:彩色圖像轉為灰度圖像
- img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB) ? #彩色化:灰度圖像轉為彩色圖像
- # cv2.COLOR_X2Y,其中X,Y = RGB, BGR, GRAY, HSV, YCrCb, XYZ, Lab, Luv, HLS
cv2.resize(image, image2,dsize) ? ? #圖像縮放:(輸入原始圖像,輸出新圖像,圖像的大小)
cv2.flip(img,flipcode)? ??? ? ? ? ? ? ? ? ? ?#圖像翻轉,flipcode控制翻轉效果。
- flipcode = 0:沿x軸翻轉;flipcode > 0:沿y軸翻轉;flipcode < 0:x,y軸同時翻轉
cv2.warpAffine(img, M, (400, 600))? ? ? ?#圖像仿射變換 :平移;裁剪、剪切、旋轉、仿射變換,
M、M_crop、M_shear、M_rotate
cv2.putText(img,'text',(50,150) ? #圖像添加文字:(照片,添加的文字,左上角坐標,字體,字體大小,顏色,字體粗細)
cv2.putText(image, caption, (b[0], b[1] - 10), cv2.FONT_HERSHEY_PLAIN, 1, (255, 0, 0), 1) cv2.putText(I,'there 0 error(s):',(50,150),cv2.FONT_HERSHEY_COMPLEX,6,(0,0,255),25)cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)? ? #畫出矩行:img原圖、(x,y)是矩陣的左上點坐標、(x+w,y+h)是矩陣的右下點坐標、(0,255,0)是畫線對應的rgb顏色、2是所畫的線的寬度。
?
cv2.boundingRect(img) ? ? ? ? ?#返回圖像的四值屬性:img是一個二值圖,即是它的參數; 返回四個值,分別是x,y,w,h; x,y是矩陣左上點的坐標,w,h是矩陣的寬和高。
?
1、圖像基本運算
? ? ?圖像的基本運算有很多種,比如兩幅圖像可以相加、相減、相乘、相除、位運算、平方根、對數、絕對值等;圖像也可以放大、縮小、旋轉,還可以截取其中的一部分作為ROI(感興趣區域)進行操作,各個顏色通道還可以分別提取及對各個顏色通道進行各種運算操作。
bitwise_and、bitwise_or、bitwise_xor、bitwise_not四個按位操作函數,是將基礎數學運算應用于圖像像素的處理中。
- bitwise_and():是對二進制數據進行“與”操作,即對圖像(灰度圖像或彩色圖像均可)每個像素值進行二進制“與”操作,1&1=1,1&0=0,0&1=0,0&0=0
- bitwise_or():是對二進制數據進行“或”操作,即對圖像(灰度圖像或彩色圖像均可)每個像素值進行二進制“或”操作,1|1=1,1|0=0,0|1=0,0|0=0
- bitwise_xor():是對二進制數據進行“異或”操作,即對圖像(灰度圖像或彩色圖像均可)每個像素值進行二進制“異或”操作,1^1=0,1^0=1,0^1=1,0^0=0
- bitwise_not():是對二進制數據進行“非”操作,即對圖像(灰度圖像或彩色圖像均可)每個像素值進行二進制“非”操作,~1=0,~0=1
2、Image.open 和cv2.imread 的區別及其轉換
Image.open?打開來的圖像格式,cv2.imread? 讀出來是像素格式。
# 1、PIL.Image轉換成OpenCV格式: import cv2 from PIL import Image import numpypath = 'F:/File_Python/Resources/face_images/LZT01.jpg' img = Image.open(path).convert("RGB")#.convert("RGB")可不要,默認打開就是RGB img.show() #轉opencv #img = cv2.cvtColor(numpy.asarray(image),cv2.COLOR_RGB2BGR) img = cv2.cvtColor(np.array(img),cv2.COLOR_RGB2BGR) cv2.imshow("OpenCV",img) cv2.waitKey()# 2、OpenCV轉換成PIL.Image格式 import cv2 from PIL import Image import numpyimg = cv2.imread('F:/File_Python/Resources/face_images/LZT01.jpg') # opencv打開的是BRG cv2.imshow("OpenCV",img) image = Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB)) image.show() cv2.waitKey()
?
?
?
?
?
相關應用:CV:利用python的cv2庫實現圖像數據增強—隨機裁剪、隨機旋轉、隨機hsv變換、隨機gamma變換代碼實現
?
?
?
參考文章
OpenCV之bitwise_and、bitwise_not等圖像基本運算及掩膜
模塊cv2的用法
?
總結
以上是生活随笔為你收集整理的Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Py之prettytable:prett
- 下一篇: 解决OpenCV问题:OpenCV Er