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

python計(jì)算機(jī)視覺OpenCV入門講解

 更新時(shí)間:2022年06月27日 16:18:51   作者:吃貓的魚python  
這篇文章主要介紹了python計(jì)算機(jī)視覺OpenCV入門講解,關(guān)于圖像處理的相關(guān)簡單操作,包括讀入圖像、顯示圖像及圖像相關(guān)理論知識

前言

本專欄將非常細(xì)致的講解相關(guān)與計(jì)算機(jī)視覺OpenCV的相關(guān)知識即操作,非常的簡單易懂。本文主要講解相關(guān)與計(jì)算機(jī)視覺的相關(guān)入門內(nèi)容,關(guān)于圖像處理的相關(guān)簡單操作,包括讀入圖像、顯示圖像及圖像相關(guān)理論知識。

一、什么是計(jì)算機(jī)視覺

計(jì)算機(jī)視覺是一門研究如何使機(jī)器“看”的科學(xué),更進(jìn)一步的說,就是是指用攝影機(jī)和電腦代替人眼對目標(biāo)進(jìn)行識別、跟蹤和測量等機(jī)器視覺,并進(jìn)一步做圖形處理,使電腦處理成為更適合人眼觀察或傳送給儀器檢測的圖像。作為一個(gè)科學(xué)學(xué)科,計(jì)算機(jī)視覺研究相關(guān)的理論和技術(shù),試圖建立能夠從圖像或者多維數(shù)據(jù)中獲取‘信息’的人工智能系統(tǒng)。這里所指的信息指Shannon定義的,可以用來幫助做一個(gè)“決定”的信息。因?yàn)楦兄梢钥醋魇菑母泄傩盘栔刑崛⌒畔ⅲ杂?jì)算機(jī)視覺也可以看作是研究如何使人工系統(tǒng)從圖像或多維數(shù)據(jù)中“感知”的科學(xué)。
視覺是各個(gè)應(yīng)用領(lǐng)域,如制造業(yè)、檢驗(yàn)、文檔分析、醫(yī)療診斷,和軍事等領(lǐng)域中各種智能/自主系統(tǒng)中不可分割的一部分。由于它的重要性,一些先進(jìn)國家,例如美國把對計(jì)算機(jī)視覺的研究列為對經(jīng)濟(jì)和科學(xué)有廣泛影響的科學(xué)和工程中的重大基本問題,即所謂的重大挑戰(zhàn)(grand challenge)。計(jì)算機(jī)視覺的挑戰(zhàn)是要為計(jì)算機(jī)和機(jī)器人開發(fā)具有與人類水平相當(dāng)?shù)囊曈X能力。機(jī)器視覺需要圖象信號,紋理和顏色建模,幾何處理和推理,以及物體建模。一個(gè)有能力的視覺系統(tǒng)應(yīng)該把所有這些處理都緊密地集成在一起。

我們目前如果是在校學(xué)生,對于計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)的相關(guān)知識的學(xué)習(xí)是非常有用的,無論是對于自己的工作前景還是相關(guān)論文的撰寫都是非常有用的,而且目前對于計(jì)算機(jī)的相關(guān)知識已經(jīng)設(shè)計(jì)到了各個(gè)專業(yè)領(lǐng)域,其中包括醫(yī)學(xué)領(lǐng)域(計(jì)算機(jī)視覺分析CT成像)、電學(xué)領(lǐng)域(使用matlab及相關(guān)領(lǐng)域畫圖)、人臉識別和車牌識別等等。而且有想要做交叉學(xué)科的對于計(jì)算機(jī)可以和任意領(lǐng)域及進(jìn)行無障礙交叉。
由于我這個(gè)理工男的語文功底并不好,語言組織能力不強(qiáng),所以我們今天就啰嗦到這里,總結(jié)一下就是計(jì)算機(jī)視覺及機(jī)器學(xué)習(xí)等和計(jì)算機(jī)相關(guān)的東西特別重要!

二、圖片處理基礎(chǔ)操作

首先我們來看一段簡單的計(jì)算機(jī)視覺相關(guān)代碼:

import cv2
img=cv2.imread('path')#path指圖片相關(guān)路徑
cv2.imshow('Demo',img)
cv2.nameWindow('Demo')
cv2.waitKey(0)
cv2.destroyAllWindows()

這段代碼就可以在計(jì)算機(jī)中顯示出img的相關(guān)圖像。接下來我們講解一下每一步的相關(guān)操作。

圖片處理:讀入圖像

相關(guān)函數(shù):image=cv2.imread(文件名相關(guān)路徑[顯示控制參數(shù)])
文件名:完整的路徑。
其中參數(shù)包括:
cv.IMREAD_UNCHANGED :表示和原圖像一致
cv.IMREAD_GRAYSCALE : 表示將原圖像轉(zhuǎn)化為灰色圖像。
cv.IMREAD_COLOR:表示將原圖像轉(zhuǎn)化為彩色圖像。
例如:
cv2.imread(‘d:\image.jpg’,cv.IMREAD_UNCHANGED)

圖片處理:顯示圖像

相關(guān)函數(shù):None=cv2.imshow(窗口名,圖像名)
例如:cv2.imshow(“demo”,image)
但是在OpenCV中我們圖像顯示還是要加上相關(guān)約束:
retval=cv2.waitKey([delay])
如果沒有這個(gè)限制,那么顯示的圖像就會(huì)一閃而過,就會(huì)發(fā)生錯(cuò)誤。
其中delay參數(shù)包括:
dealy=0,無限等待圖像顯示,直到關(guān)閉。也是waitKey的默認(rèn)數(shù)值。
delay<0,等待鍵盤點(diǎn)擊結(jié)束圖像顯示,也就是說當(dāng)我們敲擊鍵盤的時(shí)候,圖像結(jié)束顯示。
delay>0,等待delay毫秒后結(jié)束圖像顯示。
最后我們還需要顯示
cv2.destroyAllWindows()
把圖像從內(nèi)存中徹底刪除。

圖片處理:圖像保存

相關(guān)函數(shù):retval=cv2.imwrite(文件地址,文件名)
例如:
cv2.imwrite(‘D:\test.jpg’,img)
將img保存到了路徑D:\test.jpg

三、圖像處理入門基礎(chǔ)

圖像成像原理介紹

首先我們第一個(gè)要深深深深的刻在腦子里的概念就是:

圖片是由像素點(diǎn)構(gòu)成的:

生動(dòng)一點(diǎn)表示就是這樣:

這樣就可以完美的展示出計(jì)算機(jī)圖像的成像原理,就是用一個(gè)個(gè)有顏色的像素點(diǎn)拼接而成的。

圖像分類

圖像一般分為三類:
一、二值圖像
二值圖像表示的意思就是每一個(gè)像素點(diǎn)只由0和1構(gòu)成,0表示黑色,1表示白色,而且這里的黑色和白色是純黑和純白。所以我們看到的圖像也就是這個(gè)樣子。我們以官網(wǎng)麗娜為例子。

四、灰度圖像

灰度圖像就是一個(gè)8位的位圖。什么意思呢?就是說00000001一直到11111111,這就是二進(jìn)制表示。如果表示成我們常用的十進(jìn)制就是0-255。其中0就表示純黑色,255就表示純白色,中間就是處于純黑色到純白色的相關(guān)顏色。我們還是以麗娜為例。

灰度圖像一塊像素點(diǎn):

五、彩色圖像(RGB)

計(jì)算機(jī)中所有的顏色都可以由R(紅色通道)、G(綠色通道)、B(藍(lán)色通道)來組成,其中每一個(gè)通道都有0-255個(gè)像素顏色組成。比如說R=234,G=252,B=4就表示黃色。顯示出來的也是黃色。所以說彩色圖像由三個(gè)面構(gòu)成,分別對應(yīng)R,G,B。我們還是以麗娜為例子:

所以說我們就可以知道復(fù)雜程度排序的話就是:彩色圖像-灰度圖像-二值圖像。所以我們在進(jìn)行人臉項(xiàng)目或者是車牌識別項(xiàng)目中最最最常用的操作就是將彩色圖像轉(zhuǎn)化為灰度圖像,然后將灰度圖像轉(zhuǎn)為最簡單的二值圖像。

六、像素處理操作

讀取像素

相關(guān)函數(shù):返回值=圖像(位置參數(shù)) 我們先以灰度圖像,返回灰度值:
p=img[88,142]
print§
這里我們就可以返回圖片坐標(biāo)[88,142]處的灰度值。
然后我們以彩色圖像為例子:
我們知道彩色圖像由BGR三個(gè)通道的值構(gòu)成。那么我們需要返回三個(gè)數(shù)值:
blue=img[78,125,0]
green=img[78,125,1]
red=img[78,125,2]
print(blue,green,red)
這樣我們就返回了這三個(gè)數(shù)值。

修改像素

直接暴力修改。
對于灰度圖像, img[88,99]=255
對于彩色圖像,
img[88,99,0]=255
img][88,99,1]=255
img[88,99,2]=255這里也可以寫成
img[88,99]=[255,255,255]等同于上方。
改動(dòng)多個(gè)像素點(diǎn)
例如還是以彩色圖像為例子:
i[100:150,100:150]=[255,255,255]
意思也就是將圖像橫坐標(biāo)100到150和縱坐標(biāo)100到150的這個(gè)區(qū)間全部用白色替代。

使用python中的numpy修改像素點(diǎn)

讀取像素:

相關(guān)函數(shù):返回值=圖像.item(位置參數(shù))
我們以灰度圖像為例:
o=img,item(88,142)
print(o)
對于彩色圖像我們還是:
blue=img.item(88,142,0)
green=img.item(88,142,1)
red=img.item(88,142,2)
然后print(blue,green,red)

修改像素:

圖像名.itemset(位置,新的數(shù)值)
我們以灰度圖像為例子:
img.itemset((88,99),255)
對于BGR圖像:
img.itemset((88,99,0),255)
img.itemset((88,99,1),255)
img.itemset((88,99,2),255)

import cv2
import numpy as np 
i=cv2.imread('path',cv2.IMREAD_UNCHANGED)
print(i.item(100,100))
i.itemset((100,100),255)
print(i,item(100,100))

通過這段代碼我們就可以看得出來像素的更改。
對于彩色圖像也是一樣。

七、獲取圖像屬性

形狀

shape可以獲取圖像的形狀,返回值包含行數(shù)、列數(shù)通道數(shù)的元組。
灰度圖像返回行數(shù)列數(shù)
彩色圖像返回行數(shù)、列數(shù)、通道數(shù)。

import cv2
img1=cv2.imread('灰度圖像')
print(img1.shape)

像素?cái)?shù)目

size可以獲取圖像的像素?cái)?shù)目。
灰度圖像:行數(shù)列數(shù)
彩色圖像:行數(shù)列數(shù)*通道數(shù)

圖像類型

dtype返回的是圖像的數(shù)據(jù)類型

import cv2
img=cv2.imread('圖像名稱')
print(img.dtype)

八、圖像ROI

ROI(region of interest)表示感興趣區(qū)域

從被處理的圖像中以方框、圓、橢圓或者不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域??梢酝ㄟ^各種算子(operator)和函數(shù)來求ROI,并進(jìn)行下一步操作。

import cv2
import numpy as np
a=cv2.imread('path')
b=np.ones((101,101,3))
b=a[220:400,250:350]
a[0:101,0:101]=b
cv2.imshow('o',a)
cv2.waitKey()
cv2.destroyAllWindows()

我們還可以將感興趣的圖像加入到別的圖像當(dāng)中。

九、通道的拆分與合并

拆分

import cv2
img=cv2.imread('圖像名')
b = img[ : , : , 0 ]
g = img[ : , : , 1 ]
r = img[ : , : , 2 ]

我們在OpenCV中有專門拆分通道的函數(shù):
cv2.split(img)

import cv2
import numpy as np
a=cv2.imread("image\lenacolor.png")
b,g,r=cv2.split(a)
cv2.imshow("B",b)
cv2.imshow("G",g)
cv2.imshow("R",r)
cv2.waitKey()
cv2.destroyAllWindows()

合并

import cv2
import numpy as np
a=cv2.imread("image\lenacolor.png")
b,g,r=cv2.split(a)
m=cv2.merge([b,g,r])
cv2.imshow("merge",m)
cv2.waitKey()
cv2.destroyAllWindows()

我們將上方的拆分圖像進(jìn)行merge合并就可以得到以下結(jié)果:

到此這篇關(guān)于python計(jì)算機(jī)視覺OpenCV入門講解的文章就介紹到這了,更多相關(guān)python OpenCV 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基礎(chǔ)教程之異常詳解

    Python基礎(chǔ)教程之異常詳解

    調(diào)試Python程序時(shí),經(jīng)常會(huì)報(bào)出一些異常,下面這篇文章就來給大家介紹了關(guān)于Python基礎(chǔ)教程之異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2019-01-01
  • C# DataGridView行列轉(zhuǎn)換的具體實(shí)現(xiàn)

    C# DataGridView行列轉(zhuǎn)換的具體實(shí)現(xiàn)

    本文主要介紹了C# DataGridView行列轉(zhuǎn)換的具體實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • tensorflow入門之訓(xùn)練簡單的神經(jīng)網(wǎng)絡(luò)方法

    tensorflow入門之訓(xùn)練簡單的神經(jīng)網(wǎng)絡(luò)方法

    本篇文章主要介紹了tensorflow入門之訓(xùn)練簡單的神經(jīng)網(wǎng)絡(luò)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python+MediaPipe實(shí)現(xiàn)檢測人臉功能詳解

    Python+MediaPipe實(shí)現(xiàn)檢測人臉功能詳解

    MediaPipe是用于構(gòu)建多模態(tài)(例如視頻、音頻或任何時(shí)間序列數(shù)據(jù))、跨平臺(tái)(即eAndroid、IOS、web、邊緣設(shè)備)應(yīng)用ML管道的框架。本文將利用MediaPipe實(shí)現(xiàn)檢測人臉功能,需要的可以參考一下
    2022-02-02
  • 一文教會(huì)你用nginx+uwsgi部署自己的django項(xiàng)目

    一文教會(huì)你用nginx+uwsgi部署自己的django項(xiàng)目

    uWSGI是一個(gè)Web服務(wù)器,它實(shí)現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議,下面這篇文章主要給大家介紹了關(guān)于用nginx+uwsgi部署自己的django項(xiàng)目的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • pytorch torch.expand和torch.repeat的區(qū)別詳解

    pytorch torch.expand和torch.repeat的區(qū)別詳解

    這篇文章主要介紹了pytorch torch.expand和torch.repeat的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python調(diào)用API接口實(shí)現(xiàn)人臉識別

    Python調(diào)用API接口實(shí)現(xiàn)人臉識別

    本文主要介紹了Python調(diào)用API接口實(shí)現(xiàn)人臉識別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python之文字轉(zhuǎn)圖片方法

    Python之文字轉(zhuǎn)圖片方法

    今天小編就為大家分享一篇Python之文字轉(zhuǎn)圖片方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python,pycharm的環(huán)境變量設(shè)置方式

    python,pycharm的環(huán)境變量設(shè)置方式

    這篇文章主要介紹了python,pycharm的環(huán)境變量設(shè)置方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Python3安裝Scrapy的方法步驟

    Python3安裝Scrapy的方法步驟

    本篇文章主要介紹了Python3安裝Scrapy的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11

最新評論