日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略

發布時間:2025/3/21 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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、計算機操作底層技術

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

    安裝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.imshow('image',img) cv2.waitKey(0) #等待鍵盤輸入,單位為毫秒,即等待指定的毫秒數看是否有鍵盤輸入,若在等待時間內按下任意鍵則返回按鍵的ASCII碼,程序繼續運行。 #若沒有按下任何鍵,超時后返回-1。參數為0表示無限等待。不調用waitKey的話,窗口會一閃而逝,看不到顯示的圖片。 cv2.destroyAllWindow() #銷毀所有窗口 cv2.destroyWindow(wname) #銷毀指定窗口

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

    • 第一個參數是要保存的文件名
    • 第二個參數是要保存的圖像??蛇x的第三個參數,它針對特定的格式:對于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、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

    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)的简介、安装、使用方法(常见函数、方法等)最强详细攻略的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国语播放老妇呻吟对白 | 激情免费av | 9999免费视频 | 性一交一乱一色一视频麻豆 | 成人av电影免费观看 | 天天干视频 | 一卡二卡在线观看 | 国产精品 欧美 日韩 | 偷自拍 | 国产激情在线看 | 日本不卡一区在线观看 | zzjizzji亚洲日本少妇 | 日韩国产精品一区二区 | 国产一级特黄毛片 | www.日韩在线观看 | 贝利弗山的秘密在线观看 | 久久久久久久久久久久久久国产 | 7777久久亚洲中文字幕 | 靠逼网站在线观看 | 午夜福利一区二区三区 | 97视频资源 | 日本免费网站视频 | 男人日女人b视频 | 日操夜操天天操 | 亚洲精品国产精 | 神马久久影院 | 中国美女一级片 | 999国产精品视频 | 日本黄色免费在线观看 | 色哟哟在线观看视频 | 日本一区不卡在线观看 | 四季av中文字幕一区 | 国产美女又黄又爽又色视频免费 | 国产毛片网 | 蜜臀av无码一区二区三区 | 麻豆传媒在线播放 | 视频在线看 | 欧美一级黄色网 | 欧美八区 | 亚洲人人爱 | 亚洲欧美精选 | 超碰毛片 | 丁香激情五月 | 76少妇精品导航 | 欧美丰满熟妇xxxxx | 制服丝袜在线看 | 日韩av资源网 | freesexvideos第一次 | 邻居少妇张开双腿让我爽一夜 | 日韩经典av | 极品少妇网站 | 亚洲AV无码国产精品播放在线 | 免费一级特黄毛大片 | 欧美日韩一区二区三区国产精品成人 | 日本三级中文字幕 | 激情午夜网 | 波多野结衣在线观看一区 | 国产在线拍揄自揄拍无码 | 91亚洲欧美 | 中文字幕一区二区三区乱码不卡 | 欧美视频一区二区在线 | 国模精品一区二区三区 | 无码国产精品高潮久久99 | 一卡二卡三卡 | 国精产品一品二品国精品69xx | 中文字幕乱码亚洲精品一区 | 日本色呦呦 | 永久免费在线视频 | 青青草原伊人 | 亚洲毛片一区二区 | 欧美日韩欧美日韩在线观看视频 | 日本福利片在线观看 | 欧美男人又粗又长又大 | 在线观看免费视频国产 | 97视频在线观看免费高清完整版在线观看 | 日韩欧美在线观看一区二区三区 | 国产精品黄 | 免费在线成人 | 丝袜诱惑一区 | 51ⅴ精品国产91久久久久久 | 可以在线观看av的网站 | 99久热 | 自拍偷拍免费 | 精品无码人妻一区二区免费蜜桃 | 伊人加勒比 | 国产午夜视频在线观看 | 国产高清视频在线播放 | 成人在线不卡 | 亚洲影音先锋 | 日本在线视频不卡 | 小小姑娘电影大全免费播放 | 国产精品7 | 午夜视频久久 | 午夜一区二区三区免费观看 | 亚洲第一免费播放区 | 两根大肉大捧一进一出好爽视频 | 欧美不卡在线观看 | 国产不卡精品 | 一级黄色免费观看 |