python PIL,Py之cv2:cv2(OpenCV,opencv-python)庫的簡介、安裝、使用方法(常見函數、圖像基本運算等)最強詳細攻略

 2023-11-19 阅读 57 评论 0

摘要:Py之cv2:cv2(OpenCV,opencv-python)庫的簡介、安裝、使用方法(常見函數、圖像基本運算等)最強詳細攻略 目錄 cv2(OpenCV,opencv-python)庫的簡介 1、OpenCV應用領域 1.1、計算機視覺領域方向 1.2、計算機操作底層技術 cv2(OpenCV,opencv-python)庫

Py之cv2:cv2(OpenCV,opencv-python)庫的簡介、安裝、使用方法(常見函數、圖像基本運算等)最強詳細攻略

目錄

cv2(OpenCV,opencv-python)庫的簡介

1、OpenCV應用領域

1.1、計算機視覺領域方向

1.2、計算機操作底層技術

cv2(OpenCV,opencv-python)庫的安裝

1、安裝OpenCV的幾種方法

T1、直接命令法 ?

T2、使用whl文件法

T3、Anaconda 環境下安裝

2、測試是否成功

cv2(OpenCV,opencv-python)庫的使用方法(常見函數、圖像基本運算等)

1、基礎函數

1.1、cv2.imread、cv2.imshow、cv2.imwrite、img.copy()?、cv2.resize、cv2.flip、cv2.warpAffine、cv2.putText、cv2.rectangle、cv2.boundingRect等函數

1.2、cvtColor之Opencv2.x和Opencv3.x

2、圖像基本運算

3、Image.open 和cv2.imread 的區別及其轉換


python PIL,

相關文章
Py之cv2:cv2庫(OpenCV)的簡介、安裝、使用方法(常見函數、方法等)最強詳細攻略
CV:計算機視覺技術之圖像基礎知識(一)—以python的cv2庫來了解計算機視覺圖像基礎(傅里葉變換-頻域-時域/各種濾波器-線性-非線性-均值-中值-高斯-雙邊)
CV:計算機視覺圖像的基礎知識—以python的cv2庫來了解計算機視覺圖像基礎(邊緣檢測算子+平滑+輪廓標注+形態學+金字塔+傅里葉變換)—代碼實現
CV:計算機視覺技術之圖像基礎知識(一)—以python的cv2庫來了解計算機視覺圖像基礎—代碼實現(圖像顯示+加文本+變換+通道)—圖像基礎各種操作(函數及案例)
CV:計算機視覺技術之圖像基礎知識(二)—以python的skimage和numpy庫來了解計算機視覺圖像基礎(圖像存儲原理-模糊核-銳化核-邊緣檢測核,進階卷積神經網絡(CNN)的必備基礎)
CV:利用python的cv2庫實現圖像數據增強—隨機裁剪、隨機旋轉、隨機hsv變換、隨機gamma變換代碼實現

相關文章(推薦)
CV:計算機視覺技最強學習路線之CV簡介(傳統視覺技術/相關概念)、早期/中期/近期應用領域(偏具體應用)、經典CNN架構(偏具體算法)概述、常用工具/庫/框架/產品、環境安裝、常用數據集、編程技巧

cv2(OpenCV,opencv-python)庫的簡介

? ? ? ?OpenCV (Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫。OpenCV的建立是為了為計算機視覺應用程序提供一個通用的基礎設施,并加速在商業產品中使用機器感知。作為bsd許可的產品,OpenCV使企業可以很容易地利用和修改代碼。
? ? ? ?該庫有超過2500個優化算法,其中包括經典和最先進的計算機視覺和機器學習算法的綜合集。這些算法可以用來檢測和識別人臉識別物體、對視頻中的人類動作進行分類跟蹤相機運動跟蹤移動的物體提取物體的3D模型從立體相機中生成3D點云、將圖像拼接在一起生成整個場景的高分辨率圖像、從圖像數據庫中查找相似的圖像、從使用閃光燈拍攝的圖像中去除紅眼、跟蹤眼球運動識別風景并建立標記,以增強現實覆蓋它等。OpenCV擁有超過4.7萬人的用戶社區,估計下載量超過1800萬次。該圖書館廣泛用于公司、研究小組和政府機構。
? ? ? ?除了像谷歌、雅虎、微軟、英特爾、IBM、索尼、本田、豐田等知名公司都使用了OpenCV庫之外,還有許多像Applied Minds、VideoSurf和Zeitera這樣的初創公司也廣泛使用了OpenCV。OpenCV的應用范圍很廣泛,從將街景圖像拼接在一起,在以色列檢測監控視頻中的入侵行為,在中國監控礦山設備,在柳樹車庫幫助機器人導航和拾取物體,在歐洲檢測游泳池溺水事故,在西班牙和紐約運行互動藝術,在土耳其檢查跑道上的碎片,在世界各地的工廠檢查產品標簽,在日本快速人臉檢測。
? ? ? ?它有c++, Python, Java和MATLAB接口,支持Windows, Linux, Android和Mac OS跨平臺計算機視覺庫。OpenCV主要傾向于實時視覺應用程序,并在可用時利用MMX和SSE指令。目前正在積極開發功能齊全的cuda和OpenCL接口。有超過500種算法,組成或支持這些算法的函數數量大約是這些算法的10倍。OpenCV是用c++原生編寫的,它有一個模板化接口,可以與STL容器無縫地工作。
? ? ? ?它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。 OpenCV用C++語言編寫,它的主要接口也是C++語言,但是依然保留了大量的C語言接口。?
? ? ? ?在計算機視覺項目的開發中,OpenCV作為較大眾的開源庫,擁有了豐富的常用圖像處理函數庫,采用C/C++語言編寫,可以運行在Linux/Windows/Mac等操作系統上,能夠快速的實現一些圖像處理和識別的任務。此外,OpenCV還提供了Java、python、cuda等的使用接口、機器學習的基礎算法調用,從而使得圖像處理和圖像分析變得更加易于上手,讓開發人員更多的精力花在算法的設計上

opencv4。官方網站:https://opencv.org/

1、OpenCV應用領域

1.1、計算機視覺領域方向

  • 人機互動
  • 物體識別
  • 圖像分割
  • 人臉識別
  • 動作識別
  • 運動跟蹤
  • 機器人
  • 運動分析
  • 機器視覺
  • 結構分析
  • 汽車安全駕駛

1.2、計算機操作底層技術

  • 圖像數據的操作:?分配、釋放、復制、設置和轉換。 圖像是視頻的輸入輸出I/O ,文件與攝像頭的輸入、圖像和視頻文件輸出)。
  • ?矩陣和向量的操作以及線性代數的算法程序:矩陣積、解方程、特征值以及奇異值等。
  • 各種動態數據結構:列表、隊列、集合、樹、圖等。?
  • 基本的數字圖像處理:濾波、邊緣檢測、角點檢測、采樣與差值、色彩轉換、形態操作、直方圖、圖像金字塔等。?
  • 結構分析:連接部件、輪廓處理、距離變換、各自距計算、模板匹配、Hough變換、多邊形逼近、直線擬合、橢圓擬合、Delaunay 三角劃分等。?
  • 攝像頭定標:發現與跟蹤定標模式、定標、基本矩陣估計、齊次矩陣估計、立體對應。
  • 運動分析:光流、運動分割、跟蹤。?
  • 目標識別:特征法、隱馬爾可夫模型:HMM。
  • 基本的GUI:圖像與視頻顯示、鍵盤和鼠標事件處理、滾動條。?
  • 圖像標注:線、二次曲線、多邊形、畫文字。

cv2(OpenCV,opencv-python)庫的安裝

1、安裝OpenCV的幾種方法

安裝OpenCV的經驗總結與注意事項:

  • 安裝的時候是 opencv_python,但在導入的時候采用 import cv2。
  • 因為OpenCV依賴一些庫,可以在本博客中查找一些依賴庫的安裝方法,例如安裝Numpy方法等,本博客應有盡有!

T1、直接命令法 ?

pip install opencv-python ?

opencv3,

T2、使用whl文件法

第一步,官網下載whl文件。https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv,下載相應Python版本的OpenCV的whl文件,比如如本人下載的為opencv_python?3.4.1?cp36?cp36m?win_amd64.whl
第二步,pip命令安裝。在whl文件所在目錄下,命令 進行安裝即可

pip install opencv_python?3.4.1?cp36?cp36m?win_amd64.whl

python3.7。

T3、Anaconda 環境下安裝

pip install?opencv-python
conda install?opencv-python? ? ? //Anaconda 環境下安裝,先打開Anaconda Prompt,再輸入本命令進行安裝!

20191128更新記錄

python怎么用、

2、測試是否成功

最后,檢測安裝情況

import cv2

哈哈,大功告成!

cv2(OpenCV,opencv-python)庫的使用方法(常見函數、圖像基本運算等)

python3。Welcome to OpenCV-Python Tutorials’s documentation!
CV:計算機視覺圖像的基礎知識—以python的cv2庫來了解計算機視覺圖像基礎

1、基礎函數

1.1、cv2.imread、cv2.imshow、cv2.imwrite、img.copy()?、cv2.resize、cv2.flip、cv2.warpAffine、cv2.putText、cv2.rectangle、cv2.boundingRect等函數

cv2.imread(filepath,flags)? ? ?#讀入一張圖像

  • filepath:要讀入圖片的完整路徑
  • flags:讀入圖片的標志?
    • cv2.IMREAD_COLOR:默認參數,讀入一副彩色圖片,忽略alpha通道
    • cv2.IMREAD_GRAYSCALE:讀入灰度圖片
    • cv2.IMREAD_UNCHANGED:顧名思義,讀入完整圖片,包括alpha通道

cv2.imshow(wname,img)? ? ?#顯示圖像

  • 第一個參數是顯示圖像的窗口的名字
  • 第二個參數是要顯示的圖像(imread讀入的圖像),窗口大小自動調整為圖片大小
cv2.imshow('image',img)
cv2.waitKey(0)   #等待鍵盤輸入,單位為毫秒,即等待指定的毫秒數看是否有鍵盤輸入,若在等待時間內按下任意鍵則返回按鍵的ASCII碼,程序繼續運行。
#若沒有按下任何鍵,超時后返回-1。參數為0表示無限等待。不調用waitKey的話,窗口會一閃而逝,看不到顯示的圖片。
cv2.destroyAllWindow()     #銷毀所有窗口
cv2.destroyWindow(wname)   #銷毀指定窗口

cv2.imwrite(file,img,num)? ??#保存一張圖像

  • 第一個參數是要保存的文件名
  • 第二個參數是要保存的圖像。可選的第三個參數,它針對特定的格式:對于JPEG,其表示的是圖像的質量,用0 - 100的整數表示,默認95。
  • 第三個參數表示的是壓縮級別。默認為3.

img.copy()? ? #圖像復制

cv2.resize(image, image2,dsize) ? ? #圖像縮放:(輸入原始圖像,輸出新圖像,圖像的大小)

Python cv2、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.2、cvtColor之Opencv2.x和Opencv3.x

python traceback。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

2、圖像基本運算

? ? ?圖像的基本運算有很多種,比如兩幅圖像可以相加、相減、相乘、相除、位運算、平方根、對數、絕對值等;圖像也可以放大、縮小、旋轉,還可以截取其中的一部分作為ROI(感興趣區域)進行操作,各個顏色通道還可以分別提取及對各個顏色通道進行各種運算操作。
bitwise_and、bitwise_or、bitwise_xor、bitwise_not四個按位操作函數,是將基礎數學運算應用于圖像像素的處理中。

bitwise_and、bitwise_or、bitwise_xor、bitwise_not這四個按位操作函數。
void bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 & src2
void bitwise_or(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 | src2
void bitwise_xor(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 ^ src2
void bitwise_not(InputArray src, OutputArray dst,InputArray mask=noArray());//dst = ~src
  • 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

3、Image.open 和cv2.imread 的區別及其轉換

opencv安裝教程python?Image.open?打開來的圖像格式,cv2.imread? 讀出來是像素格式。

CV:Image.open 和cv2.imread的簡介、區別及PIL.Image格式/OpenCV格式相互轉換代碼實現之詳細攻略
?

相關應用:CV:利用python的cv2庫實現圖像數據增強—隨機裁剪、隨機旋轉、隨機hsv變換、隨機gamma變換代碼實現

python配置opencv。

參考文章
OpenCV之bitwise_and、bitwise_not等圖像基本運算及掩膜
模塊cv2的用法
?

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/184600.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息