日韩性视频-久久久蜜桃-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在线网页 | 日皮毛片 | 短视频在线观看 | 91丨porny丨尤物| 欧美日韩乱 | 萌白酱在线观看 | 一区二区在线国产 | 久久久亚洲av波多野结衣 | 日本欧美色图 | 四虎8848精品成人免费网站 | 男人天堂b | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 午夜男人av | av网址网站| 在线免费观看不卡av | 国产日韩欧美中文字幕 | 亚洲一区二区免费在线观看 | 日韩视频一二三区 | 国产精品蜜臀 | 2020自拍偷拍 | 蜜臀人妻四季av一区二区不卡 | 91看视频| 中文 日韩 欧美 | 久久精品牌麻豆国产大山 | 91小视频| 一级特黄aa | 少妇看片| av黄色免费观看 | 热逼视频 | 丁香花高清在线观看完整动漫 | 黄色小视频在线观看 | 色哟哟入口国产精品 | 国产一区二区三区四区五区六区 | 国产3区| 日韩极品视频 | 国产一级自拍视频 | 成人在线观看一区 | 99999精品视频 | 久久精品国产亚洲AV熟女 | 国产精品久久久一区二区三区 | 欧美a在线 | 国产一区二区三区日韩 | 美人被强行糟蹋np各种play | 伊人网在线观看 | 国产午夜影院 | 哈利波特3在线观看免费版英文版 | 亚洲综合狠狠 | 国产女18毛片多18精品 | 久青草资源福利视频 | 午夜亚洲AV永久无码精品蜜芽 | 中国黄色在线视频 | 免费视频网站在线观看入口 | 国产精品麻豆入口 | 天天5g天天看 | 美女福利在线 | 国产女人18毛片水真多 | 一本色道久久综合狠狠躁 | 91大神在线观看视频 | 国产成年无码久久久久毛片 | 色牛av | 男人操女人下面视频 | 午夜av福利 | 成人毛片一区二区三区 | 亚洲色图19p| 国产欧美一区二区精品性色99 | 亚洲国产精品女人 | 中文一级片| 韩国伦理在线看 | 欧美老熟妇又粗又大 | 妖精视频一区二区 | 91亚洲一线产区二线产区 | www.av88| 在线中文视频 | 成人国产亚洲 | 色综合久久久 | 欧美日韩一区二区三区免费 | 久久一线 | 国产乱真实合集 | 6699av| 亚洲自拍偷拍视频 | 九九精品在线播放 | 九九视频精品在线 | 亚洲人成色777777老人头 | 在线免费视频你懂的 | 日本美女全裸 | jizz日本在线观看 | 男女搞黄网站 | 人乳videos巨大吃奶 | 无码人妻精品一区二区蜜桃色欲 | 日韩tv| 欧美精品一区二区免费 | 日本在线不卡一区二区 | 尼姑福利影院 | 999久久久国产精品 韩国精品一区二区 | 手机在线免费看av | 美人被强行糟蹋np各种play | 亚洲欧美999 | 日韩精品在线一区二区三区 |