欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python+OpenCV實現(xiàn)基本的圖像處理操作

 更新時間:2022年07月11日 10:51:17   作者:俊欣  
說到圖像處理,那必然要提到opencv模塊了。本文將從最基本的opencv模塊在圖像的基本操作上說起,利用Python+OpenCV實現(xiàn)圖像的讀取保存等,感興趣的可以了解一下

今天小編來和大家分享一下Python在圖像處理當中的具體應用,那既然是圖像處理,那必然要提到opencv模塊了,該模塊支持與計算機視覺和機器學習相關(guān)的眾多算法,并且應用領(lǐng)域正在日益擴展,大致有以下幾種領(lǐng)域

  • 物體識別:通過視覺以及內(nèi)部存儲來進行物體的判斷
  • 圖像分割
  • 人臉識別
  • 汽車安全駕駛
  • 人機交互
  • 等等

當然這次小編并不打算將這么高深的內(nèi)容,今天就從最基本的opencv模塊在圖像的基本操作上說起

模塊的安裝

模塊的安裝我們通過都是通過pip命令來進行的

pip install opencv-python
pip install opencv-contrib-python

圖片的各種操作

學過線性代數(shù)的肯定懟矩陣并不感到陌生。圖像本質(zhì)上來說就是矩陣,灰度圖像是一個普通的矩陣,而彩色圖像就是一個多維矩陣,我們對于圖像的操作可以自然地轉(zhuǎn)換成是對矩陣的操作

讀取圖像

首先我們先來讀取圖像,調(diào)用的是cv2.imread()方法,它的語法格式如下

cv2.imread(filename, flag=1)

其中的flag參數(shù)是用來設置讀取圖像的格式,默認的是1,表示為按照RGB三通道的格式來進行讀取,如果設置成0,則表示以灰度圖單通道的方式來進行讀取,

import cv2
import numpy as np
img=cv2.imread('1.jpg', 0)

展示圖像

cv2.imshow(name,?img)

其參數(shù)解釋分別如下:

  • name: 表示的是展示窗口的名字
  • img: 圖片的矩陣形式

我們嘗試將上面讀取的圖片展示出來,代碼如下

cv2.imshow("grey_img", img)
## 如果使用了cv2.imshow()函數(shù),下面一定要跟著一個摧毀窗口的函數(shù)
cv2.destroyAllWindows()

當我們運行了上述的代碼之后,可以發(fā)現(xiàn)在一瞬間當中圖片彈了出來,但是還沒有等我們看清楚圖片的樣子之后就直接關(guān)閉了,原因在于cv2.imshow()函數(shù)方法并沒有延時的作用,我們添加一個延時的函數(shù),代碼如下

import cv2
import numpy as np

img = cv2.imread('1.jpg')
cv2.imshow("grey_img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

output

圖片保存

最后我們將圖片保存下來,這里用到的函數(shù)是cv2.imwrite(),它的語法格式如下

cv2.imwrite(imgname,?img)

其參數(shù)解釋分別如下:

  • imgname: 要保存的圖片的名字
  • img: 圖片的矩陣形式

示例代碼如下

import cv2
import numpy as np

img = cv2.imread('1.jpg')
cv2.imshow("grey_img", img)
cv2.waitKey(0)
cv2.imwrite('1.png', img)
cv2.destroyAllWindows()

圖片的各種屬性

有時候我們想要知道圖片的像素大小,而圖片的本質(zhì)是矩陣,例如一張1024像素*960像素的圖片,就意味著在矩陣當中的行數(shù)就是960行,列數(shù)是1024列,在opencv模塊當中調(diào)用的shape()函數(shù)方法,代碼如下

import cv2

img = cv2.imread('1.jpg')
print(img.shape[0]) # 行數(shù)
print(img.shape[1]) # 列數(shù)
print(img.shape[2]) # 通道數(shù)

output

308
340
3

可以看到該圖片的像素是340*380,通道數(shù)是3,而針對灰度圖像而言,我們來看一下圖片的屬性,代碼如下

img?=?cv2.imread('1_grey.png',?0)
print(img.shape)

output

(308, 340)

可以看到對于灰度圖像而言,我們就沒有看到通道數(shù),只有行數(shù)和列數(shù)

圖像的基本操作

最后我們來對圖像進行一些基本操作,無非就是改變當中的一些像素值,我們導入一張空白的圖片,通過修改當中的像素值來往里面添加一個黑點,代碼如下

import cv2
import numpy as np

img = cv2.imread('2.jpg')
(x, y, z) = img.shape

for i in range(-10, 10):
    for j in range(-10, 10):
        # 圖片的正中心的位置來改變像素值,
        img[int(x/2) + i, int(y/2) + j] = (0, 0, 0)

cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

output

到此這篇關(guān)于Python+OpenCV實現(xiàn)基本的圖像處理操作的文章就介紹到這了,更多相關(guān)Python OpenCV圖像處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)爬取百度貼吧帖子所有樓層圖片的爬蟲示例

    Python實現(xiàn)爬取百度貼吧帖子所有樓層圖片的爬蟲示例

    這篇文章主要介紹了Python實現(xiàn)爬取百度貼吧帖子所有樓層圖片的爬蟲,涉及基于urllib的網(wǎng)頁訪問與正則匹配相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Python即時網(wǎng)絡爬蟲項目啟動說明詳解

    Python即時網(wǎng)絡爬蟲項目啟動說明詳解

    這篇文章主要為大家詳細介紹了Python即時網(wǎng)絡爬蟲項目啟動說明,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 淺談Python中re.match()和re.search()的使用及區(qū)別

    淺談Python中re.match()和re.search()的使用及區(qū)別

    這篇文章主要介紹了淺談Python中re.match()和re.search()的使用及區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 深入探索Django中間件的應用場景

    深入探索Django中間件的應用場景

    Django中間件是一種可插拔的應用程序組件,可在請求和響應處理過程中修改Django的行為。中間件可用于處理請求、響應、異常等,還可用于實現(xiàn)身份驗證、緩存、性能監(jiān)控等常用功能。通過深入探索中間件的應用場景,可以提高Django應用程序的可擴展性和靈活性
    2023-05-05
  • python的sys.path模塊路徑添加方式

    python的sys.path模塊路徑添加方式

    這篇文章主要介紹了python的sys.path模塊路徑添加方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python如何制作英文字典

    python如何制作英文字典

    這篇文章主要為大家詳細介紹了python如何制作英文字典,添加單詞的意思,查詢,退出,建立單詞文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Python中新式類與經(jīng)典類的區(qū)別詳析

    Python中新式類與經(jīng)典類的區(qū)別詳析

    這篇文章主要給大家介紹了關(guān)于Python中新式類與經(jīng)典類的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • python實現(xiàn)批量解析郵件并下載附件

    python實現(xiàn)批量解析郵件并下載附件

    這篇文章主要為大家詳細介紹了python實現(xiàn)批量解析郵件并下載附件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • pyinstaller 3.6版本通過pip安裝失敗的解決辦法(推薦)

    pyinstaller 3.6版本通過pip安裝失敗的解決辦法(推薦)

    這篇文章主要介紹了pyinstaller 3.6版本通過pip安裝失敗的解決辦法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • Pytorch修改ResNet模型全連接層進行直接訓練實例

    Pytorch修改ResNet模型全連接層進行直接訓練實例

    在本篇文章里小編給大家整理的是關(guān)于Pytorch修改ResNet模型全連接層進行直接訓練相關(guān)知識點,有需要的朋友們參考下。
    2019-09-09

最新評論