小編寫這篇文章的主要目的,還是來給大家講解關于Python的一些實例,比如會涉及到一些機器學習的內容,比如去處理基本的圖像,那么,它的一個操作步驟是什么呢?下面小編給大家做出一個詳細解答。
今天小編給大家分析python中,關于機器學習的一些具體實例,如果我們來處理圖像的話,那么,都會用到opencv這個技術模塊。該模塊的組成,大致分為一下幾種類型。
物體識別:通過視覺以及內部存儲來進行物體的判斷
圖像分割
人臉識別
汽車安全駕駛
人機交互
等等
當然這次小編并不打算將這么高深的內容,今天就從最基本的opencv模塊在圖像的基本操作上說起
模塊的安裝
模塊的安裝我們通過都是通過pip命令來進行的
pip install opencv-python pip install opencv-contrib-python
圖片的各種操作
學過線性數學的話,我們對懟矩陣就不會有陌生的感覺。圖像在本質來說,就是由一個一個的矩陣組成的,灰度圖像是一個普通的矩陣,而彩色圖像就是一個多維矩陣,我們對于圖像的操作可以自然地轉換成是對矩陣的操作
讀取圖像
首先我們先來讀取圖像,調用的是cv2.imread()方法,它的語法格式如下
cv2.imread(filename,flag=1)
其中的flag參數是用來設置讀取圖像的格式,默認的是1,表示為按照RGB三通道的格式來進行讀取,如果設置成0,則表示以灰度圖單通道的方式來進行讀取,
import cv2 import numpy as np img=cv2.imread('1.jpg',0)
展示圖像
cv2.imshow(name,img)
其參數解釋分別如下:
name:表示的是展示窗口的名字
img:圖片的矩陣形式
我們嘗試將上面讀取的圖片展示出來,代碼如下
cv2.imshow("grey_img",img) ##如果使用了cv2.imshow()函數,下面一定要跟著一個摧毀窗口的函數 cv2.destroyAllWindows()
當我們運行了上述的代碼之后,可以發(fā)現(xiàn)在一瞬間當中圖片彈了出來,但是還沒有等我們看清楚圖片的樣子之后就直接關閉了,原因在于cv2.imshow()函數方法并沒有延時的作用,我們添加一個延時的函數,代碼如下
import cv2 import numpy as np img=cv2.imread('1.jpg') cv2.imshow("grey_img",img) cv2.waitKey(0) cv2.destroyAllWindows()
output
圖片保存
最后我們將圖片保存下來,這里用到的函數是cv2.imwrite(),它的語法格式如下
cv2.imwrite(imgname,img)
其參數解釋分別如下:
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()
圖片的各種屬性
有時候我們想要知道圖片的像素大小,而圖片的本質是矩陣,例如一張1024像素*960像素的圖片,就意味著在矩陣當中的行數就是960行,列數是1024列,在opencv模塊當中調用的shape()函數方法,代碼如下
import cv2 img=cv2.imread('1.jpg') print(img.shape[0])#行數 print(img.shape[1])#列數 print(img.shape[2])#通道數
output
308
340
3
可以看到該圖片的像素是340*380,通道數是3,而針對灰度圖像而言,我們來看一下圖片的屬性,代碼如下
img=cv2.imread('1_grey.png',0) print(img.shape)
output
(308,340)
可以看到對于灰度圖像而言,我們就沒有看到通道數,只有行數和列數
圖像的基本操作
最后我們來對圖像進行一些基本操作,無非就是改變當中的一些像素值,我們導入一張空白的圖片,通過修改當中的像素值來往里面添加一個黑點,代碼如下
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
綜上所述,關于python+opencv就為大家介紹到這里了,希望能給帶來更多的幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127996.html
摘要:而這其中,很多應用都涉及到計算機視覺這樣一個細分領域。常見的圖像處理灰度圖二值化平滑邊緣提取這幾種都屬于數字圖像處理的常用方法。對這方面知識感興趣的,可以找本數字圖像處理的相關教材系統(tǒng)地看一遍,了解數字圖像處理的基礎。 人工智能 ,一個已經被談論了幾十年的概念(最早是 圖靈 在 1950年 提出)。如今這幾年,相關技術的發(fā)展速度是越來越快。高大上如無人駕駛、智能安防、AI輔助診斷,接地...
摘要:之成為圖像處理任務的最佳選擇,是因為這一科學編程語言日益普及,并且其自身免費提供許多最先進的圖像處理工具。該庫包含基本的圖像處理功能,包括點操作使用一組內置卷積內核進行過濾以及顏色空間轉換。圖像處理系統(tǒng)有時被稱為圖像處理的瑞士軍刀。 showImg(https://segmentfault.com/img/remote/1460000019442221);編譯:張秋玥、小七、蔣寶尚 本...
摘要:時間永遠都過得那么快,一晃從年注冊,到現(xiàn)在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1983·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02