久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Python OpenCV 的知識(shí)體系

        Python OpenCV 的知識(shí)體系

        來(lái)源:千鋒教育
        發(fā)布人:xqq
        時(shí)間: 2023-11-06 23:17:07 1699283827

        1.OpenCV初識(shí)與安裝

        本部分要了解OpenCV(OpenSourceComputerVisionLibrary)的相關(guān)簡(jiǎn)介,OpenCv可以運(yùn)行在多平臺(tái)之上,輕量級(jí)而且高效,由一系列C函數(shù)和少量C++類構(gòu)成,提供了Python、Ruby、MATLAB等語(yǔ)言的接口,所以在學(xué)習(xí)的時(shí)候,要注意查閱資料的語(yǔ)言實(shí)現(xiàn)相關(guān)問(wèn)題。

        這個(gè)階段除了安裝OpenCV相關(guān)庫(kù)以外,建議收藏官方網(wǎng)址,官方手冊(cè),官方入門教程,這些都是最佳的學(xué)習(xí)資料。

        模塊安裝完畢,需要重點(diǎn)測(cè)試OpenCV是否安裝成功,可通過(guò)Python查詢安裝版本。

        2.OpenCV模塊簡(jiǎn)介

        先從全局上掌握OpenCV都由哪些模塊組成。例如下面這些模塊,你需要找到下述模塊的應(yīng)用場(chǎng)景與簡(jiǎn)介。

        core、imgproc、highgui、calib3d、features2d、contrib、flann、gpu、legacy、ml、objdetect、photo、stitching。

        整理每個(gè)模塊的核心功能,并完成第一個(gè)OpenCV案例,讀取顯示圖片。

        3.OpenCV圖像讀取,顯示,保存

        安裝OpenCV之后,從圖像獲取開始進(jìn)行學(xué)習(xí),包含本地加載圖片,相機(jī)獲取圖片,視頻獲取,創(chuàng)建圖像等內(nèi)容。

        只有先獲取圖像之后,才能對(duì)圖像進(jìn)行操作處理,信息提取,結(jié)果輸出,圖像顯示,圖像保存。

        對(duì)于一個(gè)圖像而言,在OpenCV中進(jìn)行讀取展示的步驟如下,你可以將其代碼進(jìn)行對(duì)應(yīng)。

        圖像讀取;

        窗口創(chuàng)建;

        圖像顯示;

        圖像保存;

        資源釋放。

        涉及需要學(xué)習(xí)的函數(shù)有cv2.imread()、cv2.namedWindow()、cv2.imshow()、cv2.imwrite()、cv2.destroyWindow()、cv2.destroyAllWindows()、cv2.imshow()、cv2.cvtColor()、cv2.imwrite()、cv2.waitKey()。

        4.攝像頭和視頻讀取,保存

        第一個(gè)要重點(diǎn)學(xué)習(xí)VideoCapture類,該類常用的方法有:

        open()函數(shù);

        isOpened()函數(shù);

        release()函數(shù);

        grab()函數(shù);

        retrieve()函數(shù);

        get()函數(shù);

        set()函數(shù);

        除了讀取視頻外,還需要掌握Opencv提供的VideoWriter類,用于保存視頻文件。

        學(xué)習(xí)完相關(guān)知識(shí)之后,可以進(jìn)行這樣一個(gè)實(shí)驗(yàn),將一個(gè)視頻逐幀保存為圖片。

        5.OpenCV常用數(shù)據(jù)結(jié)構(gòu)和顏色空間

        這部分要掌握的類有Point類、Rect類、Size類、Scalar類,除此之外,在Python中用numpy對(duì)圖像進(jìn)行操作,所以numpy相關(guān)的知識(shí)點(diǎn),建議提前學(xué)習(xí),效果更佳。

        OpenCV中常用的顏色空間有BGR顏色空間、HSV/HLS顏色空間、Lab顏色空間,這些都需要了解,優(yōu)先掌握BGR顏色空間。

        6.OpenCV常用繪圖函數(shù)

        掌握如下函數(shù)的用法,即可熟練的在Opencv中繪制圖形。

        cv2.line();

        cv2.circle();

        cv2.rectangle();

        cv2.ellipse();

        cv2.fillPoly();

        cv2.polylines();

        cv2.putText()。

        7.OpenCV界面事件操作之鼠標(biāo)與滑動(dòng)條

        第一個(gè)要掌握的函數(shù)是鼠標(biāo)操作消息回調(diào)函數(shù),cv2.setMouseCallback(),滑動(dòng)條涉及兩個(gè)函數(shù),分別是:cv2.createTrackbar()和cv2.getTrackbarPos()。

        掌握上述內(nèi)容之后,可以實(shí)現(xiàn)兩個(gè)案例,其一為鼠標(biāo)在一張圖片上拖動(dòng)框選區(qū)域進(jìn)行截圖,其二是通過(guò)滑動(dòng)條讓視頻倍速播放。

        8.圖像像素、通道分離與合并

        了解圖像像素矩陣,熟悉圖片的像素構(gòu)成,可以訪問(wèn)指定像素的像素值,并對(duì)其進(jìn)行修改。

        通道分離函數(shù)cv2.split(),通道合并函數(shù)cv2.merge()。

        9.圖像邏輯運(yùn)算

        掌握?qǐng)D像之間的計(jì)算,涉及函數(shù)如下:

        cv2.add();

        cv2.addWeighted();

        cv2.subtract();

        cv2.absdiff();

        cv2.bitwise_and();

        cv2.bitwise_not();

        cv2.bitwise_xor()。

        還可以研究圖像乘除法。

        10.圖像ROI與mask掩膜

        本部分屬于OpenCV中的重點(diǎn)知識(shí),第一個(gè)為感興趣區(qū)域ROI,第二個(gè)是mask掩膜(掩碼)操作。

        學(xué)習(xí)ROI部分時(shí),還可以學(xué)習(xí)一下圖像的深淺拷貝。

        11.圖像幾何變換

        圖像幾何變換依舊是對(duì)基礎(chǔ)函數(shù)的學(xué)習(xí)與理解,涉及內(nèi)容如下:

        圖像縮放cv2.resize();

        圖像平移cv2.warpAffine();

        圖像旋轉(zhuǎn)cv2.getRotationMatrix2D();

        圖像轉(zhuǎn)置cv2.transpose();

        圖像鏡像cv2.flip();

        圖像重映射cv2.remap()。

        12.圖像濾波

        理解什么是濾波,高頻與低頻濾波,圖像濾波函數(shù)。

        線性濾波:方框?yàn)V波、均值濾波、高斯濾波,

        非線性濾波:中值濾波、雙邊濾波,

        方框?yàn)V波cv2.boxFilter();

        均值濾波cv2.blur();

        高斯濾波cv2.GaussianBlur();

        中值濾波cv2.medianBlur();

        雙邊濾波cv2.bilateralFilter()。

        13.圖像固定閾值與自適應(yīng)閾值

        圖像閾值化是圖像處理的重要基礎(chǔ)部分,應(yīng)用很廣泛,可以根據(jù)灰度差異來(lái)分割圖像不同部分,閾值化處理的圖像一般為單通道圖像(灰度圖),核心要掌握的兩個(gè)函數(shù):

        固定閾值:cv2.threshold();

        自適應(yīng)閾值:cv2.adaptiveThreshold()。

        14.圖像膨脹腐蝕

        膨脹、腐蝕屬于形態(tài)學(xué)的操作,是圖像基于形狀的一系列圖像處理操作。

        膨脹腐蝕是基于高亮部分(白色)操作的,膨脹是対高亮部分進(jìn)行膨脹,類似“領(lǐng)域擴(kuò)張”,腐蝕是高亮部分被腐蝕,類似“領(lǐng)域被蠶食”。

        膨脹腐蝕的應(yīng)用和功能:

        消除噪聲;

        分割獨(dú)立元素或連接相鄰元素;

        尋找圖像中的明顯極大值、極小值區(qū)域;

        求圖像的梯度;

        核心需要掌握的函數(shù)如下:

        膨脹cv2.dilate();

        腐蝕cv2.erode()。

        形態(tài)學(xué)其他操作,開運(yùn)算、閉運(yùn)算、頂帽、黑帽、形態(tài)學(xué)梯度這些都是基于膨脹腐蝕基礎(chǔ)之上,利用cv2.morphologyEx()函數(shù)進(jìn)行操作。

        15.邊緣檢測(cè)

        邊緣檢測(cè)可以提取圖像重要輪廓信息,減少圖像內(nèi)容,可用于分割圖像、特征提取等操作。

        邊緣檢測(cè)的一般步驟:

        濾波:濾出噪聲対?rùn)z測(cè)邊緣的影響;

        增強(qiáng):可以將像素鄰域強(qiáng)度變化凸顯出來(lái)—梯度算子;

        檢測(cè):閾值方法確定邊緣;

        常用邊緣檢測(cè)算子:

        Canny算子,Canny邊緣檢測(cè)函數(shù)cv2.Canny();

        Sobel算子,Sobel邊緣檢測(cè)函數(shù)cv2.Sobel();

        Scharr算子,Scharr邊緣檢測(cè)函數(shù)cv2.Scahrr();

        Laplacian算子,Laplacian邊緣檢測(cè)函數(shù)cv2.Laplacian()。

        16.霍夫變換

        霍夫變換(HoughTransform)是圖像處理中的一種特征提取技術(shù),該過(guò)程在一個(gè)參數(shù)空間中,通過(guò)計(jì)算累計(jì)結(jié)果的局部最大值,得到一個(gè)符合該特定形狀的集合,作為霍夫變換的結(jié)果。

        本部分要學(xué)習(xí)的函數(shù):

        標(biāo)準(zhǔn)霍夫變換、多尺度霍夫變換cv2.HoughLines();

        累計(jì)概率霍夫變換cv2.HoughLinesP();

        霍夫圓變換cv2.HoughCricles()。

        17.圖像直方圖計(jì)算及繪制

        先掌握直方圖相關(guān)概念,在掌握核心函數(shù),最后通過(guò)matplotlib模塊對(duì)直方圖進(jìn)行繪制。計(jì)算直方圖用到的函數(shù)是cv2.calcHist()。

        直方圖相關(guān)應(yīng)用:

        直方圖均衡化cv2.equalizeHist();

        直方圖對(duì)比cv2.compareHist();

        反向投影cv2.calcBackProject()。

        18.模板匹配

        模板匹配是在一幅圖像中尋找與另一幅模板圖像最匹配(相似)部分的技術(shù)。

        核心用到的函數(shù)如下:

        模板匹配cv2.matchTemplate();

        矩陣歸一化cv2.normalize();

        尋找最值cv2.minMaxLoc()。

        19.輪廓查找與繪制

        核心要理解到在OpenCV中,查找輪廓就像在黑色背景中找白色物體。

        常用函數(shù):

        查找輪廓cv2.findContours();

        繪制輪廓cv2.drawContours()。

        最后應(yīng)該掌握針對(duì)每個(gè)輪廓進(jìn)行操作。

        20.輪廓特征屬性及應(yīng)用

        這部分內(nèi)容比較重要,并且知識(shí)點(diǎn)比較多,核心內(nèi)容與函數(shù)分別如下:

        尋找凸包c(diǎn)v2.convexHull()與凸性檢測(cè)cv2.isContourConvex();

        輪廓外接矩形cv2.boundingRect();

        輪廓最小外接矩形cv2.minAreaRect();

        輪廓最小外接圓cv2.minEnclosingCircle();

        輪廓橢圓擬合cv2.fitEllipse();

        逼近多邊形曲線cv2.approxPolyDP();

        計(jì)算輪廓面積cv2.contourArea();

        計(jì)算輪廓長(zhǎng)度cv2.arcLength();

        計(jì)算點(diǎn)與輪廓的距離及位置關(guān)系cv2.pointPolygonTest();

        形狀匹配cv2.matchShapes()。

        21.高級(jí)部分-分水嶺算法及圖像修補(bǔ)

        掌握分水嶺算法的原理,掌握核心函數(shù)cv2.watershed()。

        可以擴(kuò)展補(bǔ)充圖像修補(bǔ)技術(shù)及相關(guān)函數(shù)cv2.inpaint(),學(xué)習(xí)完畢可以嘗試人像祛斑應(yīng)用。

        22.GrabCut&FloodFill圖像分割、角點(diǎn)檢測(cè)

        這部分內(nèi)容都需要一些圖像專業(yè)背景知識(shí),先掌握相關(guān)概念知識(shí),在重點(diǎn)學(xué)習(xí)相關(guān)函數(shù)。

        GrabCut算法cv2.grabCut();

        漫水填充算法cv2.floodFill();

        Harris角點(diǎn)檢測(cè)cv2.cornerHarris();

        Shi-Tomasi角點(diǎn)檢測(cè)cv2.goodFeaturesToTrack();

        亞像素角點(diǎn)檢測(cè)cv2.cornerSubPix()。

        23.特征檢測(cè)與匹配

        特征點(diǎn)的檢測(cè)和匹配是計(jì)算機(jī)視覺(jué)中非常重要的技術(shù)之一,在物體識(shí)別、視覺(jué)跟蹤、三維重建等領(lǐng)域都有很廣泛的應(yīng)用。

        OpenCV提供了如下特征檢測(cè)方法:

        “FAST”FastFeatureDetector;

        “STAR”StarFeatureDetector;

        “SIFT”SIFT(nonfreemodule)Opencv3移除,需調(diào)用xfeature2d庫(kù);

        “SURF”SURF(nonfreemodule)Opencv3移除,需調(diào)用xfeature2d庫(kù);

        “ORB”O(jiān)RBOpencv3移除,需調(diào)用xfeature2d庫(kù);

        “MSER”MSER;

        “GFTT”GoodFeaturesToTrackDetector;

        “HARRIS”(配合Harrisdetector);

        “Dense”DenseFeatureDetector;

        “SimpleBlob”SimpleBlobDetector。

        24.OpenCV應(yīng)用部分之運(yùn)動(dòng)物體跟蹤與人臉識(shí)別

        了解何為運(yùn)動(dòng)物體檢測(cè),OpenCV中常用的運(yùn)動(dòng)物體檢測(cè)方法有背景減法、幀差法、光流法,跟蹤算法常用的有meanShift,camShift,粒子濾波,光流法等。

        meanShift跟蹤算法cv2.meanShift();

        CamShift跟蹤算法cv2.CamShift()。

        如果學(xué)習(xí)人臉識(shí)別,涉及的知識(shí)點(diǎn)為:

        人臉檢測(cè):從圖像中找出人臉位置并標(biāo)識(shí);

        人臉識(shí)別:從定位到的人臉區(qū)域區(qū)分出人的姓名或其它信息;

        機(jī)器學(xué)習(xí)。

        以上內(nèi)容為大家介紹了PythonOpenCV的知識(shí)體系,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        黄梅县| 永宁县| 瑞安市| 衢州市| 东平县| 峨眉山市| 新野县| 开封市| 双峰县| 黎平县| 武乡县| 惠水县| 巫溪县| 株洲县| 上高县| 新民市| 冕宁县| 辽源市| 甘泉县| 大荔县| 甘泉县| 土默特右旗| 慈溪市| 合肥市| 鄂伦春自治旗| 云梦县| 项城市| 东宁县| 遵义县| 绥棱县| 东丽区| 张家界市| 西丰县| 茶陵县| 德阳市| 阿拉善右旗| 通山县| 东丰县| 岑巩县| 咸丰县| 靖远县|