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

歡迎訪問 生活随笔!

生活随笔

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

python

[python opencv 计算机视觉零基础到实战] 一 opencv的helloworld

發布時間:2023/12/4 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [python opencv 计算机视觉零基础到实战] 一 opencv的helloworld 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前置條件

說明:本系列opencv實戰教程將從基礎到實戰,若只是簡單學習完python也可以通過該教程完成一般的機器學習編程;文中將會對很多python的基礎內容進行講解,但由于文章定位的原因將不會贅述過多的基礎內容,基礎內容進行第一次講解后第二次將不會過多贅述,本文主要講解的是opencv相關知識。

本文系統及環境:本文將在windows7操作系統下以python作為編程語言,完成對opencv的程序編寫。python版本是3.8。

目錄

[python opencv 計算機視覺零基礎到實戰] 一、opencv的helloworld

[【python opencv 計算機視覺零基礎到實戰】二、 opencv文件格式與攝像頭讀取] 一、opencv的helloworld

[[python opencv 計算機視覺零基礎到實戰] 三、numpy與圖像編輯] 一、opencv的helloworld

[[python opencv 計算機視覺零基礎到實戰] 四、了解色彩空間及其詳解] 一、opencv的helloworld

[[python opencv 計算機視覺零基礎到實戰] 五、對象追蹤] 一、opencv的helloworld

一、學習目標

  • 安裝opencv
  • 了解什么是計算機視覺
  • 了解讀取圖片的方法
  • 了解顯示圖片的方法
  • 二、完成opencv的helloworld程序編寫

    2.1 opencv是什么

    要了解opencv是什么,首先可以看opencv的全程——Open Source Computer Vision Library,翻譯過來為“開源的計算機系統識別庫”。那計算機視覺指的是什么呢?

    計算機視覺并不是指計算機可以去查看某些東西,這個說法太過片面,并不嚴謹;計算機視覺其實是研究如何讓計算機去代替人去觀察,并且進行一些目標上的處理。在opencv中,集成了很多方法,可以讓我們開發者很容易的完成某些視覺上的操作,完成某些目標;通過opencv,可以讓我們無需了解太多的算法知識,簡便的進行開發。

    2.2 opencv可以做什么

    opencv應用廣泛,例如人臉識別、車牌識別、機器人、指紋、文字等,還可以對圖片信息進行方便的編輯,例如可以模糊圖片、檢測目標等;我們可以通過學習opencv可以做一個“檢測老板面部自動切屏程序”、“類似于圖片摳圖等圖片操作的軟件”、“自動駕駛”等。

    2.3 opencv的安裝

    opencv的安裝很簡單,使用pip命令安裝即可。命令如下:

    pip install opencv-python

    安裝完成后可以在cmd黑框框中進入python命令的交互界面,引入opencv即可知道是否已經安裝成功。步驟如下:
    首先輸入python進入python命令的交互界面:

    隨后輸入命令import cv2,引入OpenCV庫:

    若此時并未出錯,則說明opencv安裝正確。
    其中import表示引入,import cv2表示引入cv2這個模塊,cv2是模塊名;其中import的作用是引入。

    2.4 opencv的helloworld

    opencv的helloworld程序跟一般的helloworld程序不同,指讀取一張圖片并且顯示。我們打開自己的編輯器,我使用的編輯器是notepad。

    opencv讀取圖片使用的是imread方法,在imread方法傳入一張圖片的路徑即可讀取到該圖片,但需要注意的是,在讀取圖片時,路徑不能出現中文、文件名最好是中文、在傳入時還需要注意斜桿會轉義,盡量的加r使文件路徑不轉義。查看以下示例:

    img = cv2.imread(r'C:\Users\mx\Desktop\1.jpg')

    以上代碼讀取一張路徑為“C:\Users\mx\Desktop\1.jpg”的圖片,并且賦值給img變量,這是img則為改圖片對象。隨后顯示該變量內容需要先創建一個窗口,名為ImageShow,使用namedWindow方法。代碼如下:

    cv2.namedWindow("Image")

    namedWindow接收2個參數,一個為窗口名稱,另一個為顯示方式;顯示方式包括cv.WINDOW_AUTOSIZE與*cv.WINDOW_NORMAL,默認情況下是cv.WINDOW_AUTOSIZE;默認情況下并不能改變窗口大小,若圖片太大,將會對查看造成一定的影響,使用cv.WINDOW_NORMAL則可以對窗口大小進行拖動更改,將會方便我們的查看。我們將以上代碼更改,代碼如下:

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

    接下來我們將顯示圖像,使用imshow方法。代碼如下:

    cv2.imshow("Image", img)

    imshow方法接收2個參數,第一個是我們需要在哪個窗口顯示的名稱,第二個是讀取后的圖片對象img。若在上一步中不創建窗口Image,在使用imshow方法時依舊可以直接顯示,此時將會創建一個當前所命名的窗口。接下來需要添加一個等待,防止程序運行完后自動關閉。代碼如下:

    cv2.waitKey (0)

    接下來關掉窗口,調用destroyAllWindows方法,該方法將會銷毀所有創建的窗口:

    cv2.destroyAllWindows()

    也可以使用destroyWindow方法銷毀指定的窗口,如下代碼:

    cv2.destroyWindow("Image")

    以上完整的代碼如下:

    import cv2img = cv2.imread(r'C:\Users\mx\Desktop\1.jpg')#讀取 cv2.namedWindow("Image",cv2.WINDOW_NORMAL)#創建一個窗口 cv2.imshow("Image", img)#顯示圖像 cv2.waitKey (0)#等待關閉 cv2.destroyAllWindows()#destroy

    運行代碼,將會出現圖片:

    以上圖片左上角為title頭,是窗口名稱,并且改圖片可以拖動改變大小。我們更改imshow代碼,使其指定到一個未創建的窗口進行顯示:

    import cv2img = cv2.imread(r'C:\Users\mx\Desktop\1.jpg')#讀取 cv2.namedWindow("Image",cv2.WINDOW_NORMAL)#創建一個窗口 cv2.imshow("Image1", img)#顯示圖像 cv2.waitKey (0)#等待關閉 cv2.destroyAllWindows()#destroy

    運行結果如下:

    我們發現,這時創建了一個Image1窗口,該窗口顯示了該圖片內容,并且不能改動大小;我們使用namedWindow創建的Image窗口并沒有指定顯示內容,所以導致顯示內容無,但是可以自動改變大小,這時因為我們創建該窗口時傳入了cv2.WINDOW_NORMAL選擇了可自由改變大小。這時可通過這個小例子很好的對比cv2.WINDOW_NORMAL與cv2.WINDOW_AUTOSIZE的區別。

    這時也可以改變代碼:

    import cv2img = cv2.imread(r'C:\Users\mx\Desktop\1.jpg')#讀取 cv2.namedWindow("Image",cv2.WINDOW_NORMAL)#創建一個窗口 cv2.imshow("Image1", img)#顯示圖像 cv2.destroyWindow("Image") cv2.waitKey (0)#等待關閉 cv2.destroyAllWindows()#destroy

    以上代碼中在waitKey 之前使用了destroyWindow方法對無用的Image窗口進行了銷毀,運行時將會不再出現Image窗口。
    注:文章首發于ebaina

    三、總結

  • 了解了安裝opencv 的命令 pip install opencv-python
  • 了解計算機視覺是研究如何讓計算機去代替人去觀察,并且進行一些目標上的處理
  • 了解讀取圖片的方法imread
  • 了解顯示圖片的方法imshow
  • 了解窗口創建的多個模式WINDOW_NORMAL與WINDOW_AUTOSIZE
  • 了解了銷毀所有窗口的方法destroyAllWindows與銷毀指定窗口的方法destroyWindow
  • 總結

    以上是生活随笔為你收集整理的[python opencv 计算机视觉零基础到实战] 一 opencv的helloworld的全部內容,希望文章能夠幫你解決所遇到的問題。

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