<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一文綜述OpenCV基礎+計算機視覺基礎

          共 8878字,需瀏覽 18分鐘

           ·

          2021-06-03 20:06

          點擊下面卡片關注,”AI算法與圖像處理

          最新CV成果,火速送達

          在這篇文章中,將嘗試解釋Computer Vision和OpenCV庫的工作原理。在整篇文章中,將介紹:
          • 什么是計算機視覺?
          • 計算機視覺如何工作?
          • 計算機視覺的應用
          • 什么是OpenCV?
          • OpenCV的簡史
          • OpenCV快速入門
          讓我們逐步開始。
          資源:https : //medium.com/analytics-vidhya/introduction-to-computer-vision-with-opencv-part-1-3dc948521deb

          什么是計算機視覺?

          Computer Vision是一個工作場所,可讓我們以數字方式檢測圖像并對這些圖像執(zhí)行操作。Computer Vision是一個人工智能工作區(qū),在這里我們可以通過訪問數字媒體中的圖像特征來收集信息并提取特征。在其他來源中,其定義如下:
          維基百科:
          計算機視覺是一門跨學科的科學領域,涉及計算機如何從數字圖像或視頻中獲得高級了解。從工程學的角度來看,它試圖理解和自動化人類視覺系統(tǒng)可以完成的任務。
          IBM:
          計算機視覺是人工智能(AI)的領域,它使計算機和系統(tǒng)能夠從數字圖像,視頻和其他視覺輸入中獲取有意義的信息,并根據該信息采取行動或提出建議。如果AI使計算機能夠思考,則計算機視覺使他們能夠看到,觀察和理解。
          計算機視覺的主要目的是理解圖像并解釋它們以供我們使用。作為人類,我們可以用眼睛輕松感知任何街道上的移動物體。計算機使用許多不同的算法來理解這一點。但是,使用這些算法,計算機可能仍無法給出非常高精度的結果。
          資源:https : //manningbooks.medium.com/how-does-computer-vision-work-bc35b0fb5df5

          計算機視覺如何工作?

          計算機使用某些算法來檢測數字媒體中的圖像。數字媒體中的圖像由像素組成。任何圖像中的像素都具有顏色和坐標。
          想象一下,每個像素都有自己的標識。在其ID上,它寫入坐標和顏色信息。這是計算機可以檢測和識別圖像的方式。
          像素的坐標和顏色信息用數字表示。數字是根據RGB格式定義的。由于圖像身份中的此信息是用數字表示的,因此計算機可以理解這一點。
          每個圖像可以包含數千個像素。這些像素也作為矩陣保留在圖像上。因此,如果我們要在視覺上進行操作,則需要通過矩陣進行操作。
          計算機視覺分為三個基本步驟:
          1.獲取圖像
          可以通過視頻,照片或3D技術實時獲取甚至大集合的圖像進行分析。
          2.處理圖像
          深度學習模型會自動執(zhí)行此過程的大部分過程,但是通常會先向模型提供數千張標記或預先識別的圖像,然后對模型進行訓練。
          3.了解圖像
          最后一步是解釋性步驟,在此步驟中對對象進行識別或分類。
          資源:https://www.weareworldquant.com/en/thought-leadership/understanding-images-computer-vision-in-flux/

          計算機視覺的應用

          最受歡迎的計算機視覺應用程序的示例:
          • 癌癥檢測
          • COVID-19診斷
          • 口罩檢測
          • 車輛分類
          • 交通流量分析
          • 停車占用檢測
          • 自動車牌識別
          • 客戶追蹤
          • 人數盤點
          • 社會距離
          • 球追蹤
          • 球門線技術

          什么是OpenCV?

          OpenCV,即開源計算機視覺庫。可以理解,它是一個開放源代碼的計算機視覺庫。如今,它在圖像處理領域非常流行。你可以使用Java,C ++或Python語言在OpenCV上工作。
          通過使用OpenCV,人們可以處理圖像和視頻以識別對象,面部,甚至是人的筆跡。當它與各種庫(例如Numpy)集成時,python能夠處理OpenCV數組結構以進行分析。
          為了識別圖像模式及其各種特征,我們使用向量空間并對這些特征執(zhí)行數學運算。

          OpenCV的簡史

          OpenCV由加里·布拉德斯基(Gary Bradsky)于1999年在英特爾創(chuàng)立,第一版于2000年問世。瓦迪姆·皮薩列夫斯基(Vadim Pisarevsky)與加里·布拉德斯基(Gary Bradsky)一起管理英特爾的俄羅斯軟件OpenCV團隊。
          2005年,OpenCV用于Stanley,該車贏得了2005年DARPA大挑戰(zhàn)賽的冠軍。后來,在Willow Garage的支持下,它的發(fā)展得以繼續(xù),Gary Bradsky和Vadim Pisarevsky領導了該項目。OpenCV現(xiàn)在支持與計算機視覺和機器學習有關的多種算法,并且正在日益擴展。
          OpenCV支持多種編程語言,例如C ++,Python,Java等,并且可在包括Windows,Linux,OS X,Android和iOS在內的不同平臺上使用。基于CUDA和OpenCL的高速GPU操作的接口也正在積極開發(fā)中。
          OpenCV-Python是用于OpenCV的Python API,結合了OpenCV C ++ API的最佳質量和Python語言。

          OpenCV快速入門

          在討論了計算機視覺和OpenCV之后,我想向你展示我們可以使用一些簡單的應用程序來做些什么。這樣,你既可以練習得更好,又可以進入學習過程。

          讀取圖像

          首先,我們將使用OpenCV進行讀取圖像并將其顯示在屏幕上的過程。如果在使用Python的IDE中未安裝OpenCV,則必須先安裝它。
          pip install opencv-python
          安裝之后,首先,你必須導入庫。你可以將OpenCV庫稱為cv2。
          你需要將要讀取的圖像保存到對象中。
          你可以使用cv2.imread( )函數讀取圖像。此函數將獲取圖像的文件的路徑作為參數。由于我的python工作文件與圖片位于同一文件夾中,因此我直接輸入圖片的名稱。這里要注意的一點是編寫視覺效果的擴展。別忘了這個。
          當我們運行代碼時,我們給該窗口命名,因為它將在可視窗口中打開。我們使用cv2.namedWindow( ).函數執(zhí)行此操作。該函數將窗口的名稱作為其第一個參數。實際上,這就足夠了。但是由于我希望能夠更改打開的窗口的大小,因此我添加了參數cv2.WINDOW_NORMAL.
          代碼運行時,函數cv2.imshow( )用于在屏幕上顯示當前圖像。它有兩個參數。第一個是我們將要顯示的視覺效果的名稱,第二個是它在其中注冊的對象。在這里,我將圖像保存為img。因此,我將img用作第二個參數。
          最后,我編寫該函數cv2.waitKey(0)是因為希望在打開的可視屏幕上隨時關閉它。此函數以毫秒為單位獲取數字值。當我們在此處寫入0時,表示我們可以隨時關閉窗口。
          另外,養(yǎng)成添加函數cv2.destroyAllWindows().的習慣。當我們執(zhí)行高級項目時,我們會忘記關閉許多在屏幕上打開的窗口。此函數可避免這種情況。
          你可以在下面找到所有代碼。
          import cv2                                                        

          img = cv2.imread("klon.jpg")

          cv2.namedWindow("Image",cv2.WINDOW_NORMAL)

          cv2.imshow("Image", img)

          cv2.waitKey(0)
          cv2.destroyAllWindows()

          從網絡攝像頭讀取視頻

          現(xiàn)在,讓我們檢查一下如何從計算機攝像機讀取視頻。
          首先,我們導入OpenCV庫。
          然后,我們將從計算機攝像機拍攝的圖像寫在一個物體上。我將此對象設置為捕獲。我們使用cv2.VideoCapture(0)函數從計算機攝像頭捕獲視頻。此處的值0用于訪問連接到計算機的相機。
          如果你有攝像機,則可以將其設為0。如果你有更多攝像機,則可以嘗試1,2 ..訪問相應的攝像機。
          如你所知,視頻由幀組成。為了查看我們在視頻中捕獲的圖像,我們必須將它們循環(huán)打印在屏幕上。因此,我們進行了定義,將讀取捕獲的圖像,然后將該圖像返回給我們。
          ret, frame = capture.read()
          然后我們進行調整。要在鏡中看到自己看到的捕獲圖像,我們需要將它們反轉為y軸。這就是為什么我們在frame = cv2.flip(frame, 1).此處編寫代碼的原因,當我們在幀后輸入參數為1時,它給出了y軸圖像的倒數。
          然后,我們編寫代碼cv2.imshow("Webcam", frame)以顯示從相機拍攝的幀。
          然后,我們確定捕獲的圖像將在屏幕上保留幾毫秒。除此之外,當我們按下鍵盤上的q鍵時,我們將編寫以下代碼以停止接收圖像。
          cv2.imshow("Webcam", frame)
          if cv2.waitKey(30) & 0xFF == ord("q"):
              break
          在此,0xFF == ord("q")是指按鍵盤上的q鍵。
          最后,在處理完視頻之后,完成后,我們需要編寫一些代碼來發(fā)布圖像。如下。
          capture.release()
          你可以在下面找到所有代碼。
          import cv2
            
          capture = cv2.VideoCapture(0)                                         

          while True:
               ret, frame = capture.read()
               frame = cv2.flip(frame, 1)

               cv2.imshow("Webcam", frame)
               if cv2.waitKey(30) & 0xFF == ord("q"):
                   break

          capture.release()
          cv2.destroyAllWindows()

          長寬比應用

          現(xiàn)在,我將向你展示一個長寬比應用程序。在某些情況下,我們可能不知道圖像的尺寸。在這種情況下,可以通過避免手動計算來使用此類應用程序來實現(xiàn)此目的的自動化。
          我們定義了一個名為resizewithAspectRatio的函數。我們?yōu)榇撕瘮翟O置了4個參數。這些是:
          • 為其保留圖像的變量的名稱
          • 寬度
          • 高度
          • 并具有避免在調整大小時插值的功能
          讓我們繼續(xù)執(zhí)行要應用的步驟。
          首先,我們定義一個維變量,其預定義為空。然后,將原始尺寸中圖像的前兩個尺寸分別作為高度和寬度的h和w保存到一個元組中。
          如果未指定寬度和高度,則我們希望圖像返回其原始狀態(tài)。
          如果未指定寬度,我們希望執(zhí)行以下操作。
          r = height / float(h)
          dimension = (int(w*r),height)
          讓我告訴你這是什么意思。我們計算原始圖像中給定的高度與尺寸的比率。然后,我們將該比例乘以原始寬度,然后得出新尺寸。因此,在視覺上沒有尺寸的變形。
          否則,如果沒有給出高度,我們將再次應用類似的程序。
          結果,我們希望根據使用以下代碼編寫的函數輸出調整大小后的視覺效果。
          return cv2.resize(img, dimension, interpolation= inter)
          然后,根據編寫的函數讀取原始圖像和調整大小后的圖像。
          img = cv2.imread("klon.jpg")
          img1 = resizewithAspectRatio(img, 
                                       width = None,
                                       height = 600
                                       inter = cv2.INTER_AREA)
          最后,我們通過編寫一些我們知道的代碼來完成應用程序。
          cv2.imshow("Original",img)
          cv2.imshow("Resized",img1)

          cv2.waitKey(0)
          cv2.destroyAllWindows()
          你可以在下面找到所有代碼。
          import cv2


          def resizewithAspectRatio(  img
                                    , width = None
                                    , height = None
                                    , inter = cv2.INTER_AREA)
          :
                        
              dimension: None
              (h,w) =  img.shape[:2]

              if width is None and height is None:
                  return img

              if width is None:
                  r = height / float(h)
                  dimension = (int(w*r),height)

              else:
                  r = width / float(w)
                  dimension = (width, int(h*r))


              return cv2.resize(img, dimension, interpolation= inter)

          img = cv2.imread("klon.jpg")
          img1 = resizewithAspectRatio(  img 
                                       , width = None
                                       , height = 600
                                       , inter = cv2.INTER_AREA)

          cv2.imshow("Original",img)
          cv2.imshow("Resized",img1)

          cv2.waitKey(0)
          cv2.destroyAllWindows()


          個人微信(如果沒有備注不拉群!
          請注明:地區(qū)+學校/企業(yè)+研究方向+昵稱



          下載1:何愷明頂會分享


          AI算法與圖像處理」公眾號后臺回復:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經典工作的總結分析


          下載2:終身受益的編程指南:Google編程風格指南


          AI算法與圖像處理」公眾號后臺回復:c++,即可下載。歷經十年考驗,最權威的編程規(guī)范!



          下載3 CVPR2021

          AI算法與圖像處公眾號后臺回復:CVPR即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文

          點亮 ,告訴大家你也在看



          瀏覽 53
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品中文字幕97A片免费视频 | 日日躁夜夜躁狠狠躁麻豆 | 欧美三区四区 | 伊人激情综合 | 天美张佳晨 |