文章目
目錄
前言
一、圖像的讀入和顯示和保存
章節介紹:
1、讀取圖像
2、顯示圖像
3、圖像的保存
二、圖像的繪制
章節介紹:
1、繪制直線
2、繪制圓形
3、繪制矩形
4、向圖像中添加文字
總結
接下來,我們就進入有趣的圖像處理基礎,內容比較多,希望大家能耐住性子,把這一章比較重要的內容學完。
這裡我將會給大家介紹如何讀取圖像,如何顯示圖像和如何保存圖像。
(1)使用的函數
cv2.imread()
函數的參數:
cv.IMREAD*COLOR:以彩色模式加載圖像,任何圖像的透明度都將被忽略。這是默認參數。
cv.IMREAD*GRAYSCALE:以灰度模式加載圖像
cv.IMREAD_UNCHANGED:包括alpha通道的加載圖像模式。
可以使用1/0或者-1來替代上邊三個標志
(2)參考代碼
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png', 0)
函數解析:前兩行是導入函數的使用包,cv2即是我們下載的opencv-python,matplotlib 函數也是一個可視化函數,具體下載方式不具體闡述,後面我們會使用到。
第三行代碼的意思是將路徑中的圖片讀取,以灰度圖的形式讀入函數(0表示以灰度圖的方式讀入。)。
注意:以上代碼如果路徑有錯,則不會報錯,只會放回一個None值
(1)使用函數
cv2.imshow()
參數:
注意:在調用顯示圖像的API後,要調用cv.waitKey()給圖像繪制留下時間,否則窗口會出現無響應情況,並且圖像無法顯示出來。
(2)參考代碼:
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png', 0)
cv2.imshow('img',img)
cv2.waitKey(0)
# matplotlib中展示
plt.imshow(img)
plt.show()
代碼解析:cv2.imshow('img', img)第一個參數是顯示圖像的名稱,第二個參數是圖像的本體。
cv2.waitKey()函數中,如果參數是0,則只有在選中圖像的時候,按下鍵盤上任意鍵,函數才會停止。如果參數是大於0的數字,則相當於延時函數,延時單位為毫秒。
(3)函數執行效果
(1)使用的函數
cv2.imwrite()
參數:
(2)參考代碼:
cv.imwrite('messigray.png',img)
代碼解析:打開輸入的路徑,如果圖片沒有問題,則已經正常保存成功。
這一章是目標識別和目標追蹤中一定會使用到的, 因為在之後的識別或者追蹤中,如果我們想要可視化出識別或者追蹤的結果,就必須使用畫框和插入文字函數,比較重要,希望大家能夠理解。
(1)使用的函數
cv2.line(img, start, end, color, thickness)
參數:
(2)參考代碼
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png')
cv2.line(img, (0,0), (900, 900), (0, 255, 0), 3)
cv2.imshow('img',img)
cv2.waitKey(0)
代碼解析:坐標系的中心是在左上角,右下角的坐標是(900, 900)【已經超越了顯示的維度】,顏色表可以從網上找到,3表示線條寬度。
(3)執行效果
(1)使用函數:
cv2.circle(img, centerpoint, r, color, thickness)
參數:
(2)代碼示例:
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png')
cv2.circle(img, (100, 100), 90, (0, 0, 255), 3)
cv2.imshow('img',img)
cv2.waitKey(0)
代碼解析:(100, 100)表示由上向下的坐標,90表示半徑,(0, 0, 255)表示顏色, 3表示線條寬度。
(3)執行效果
(1)使用函數:
cv.rectangle(img,leftupper,rightdown,color,thickness)
參數:
(2)代碼示例:
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png')
cv2.rectangle(img, (100, 100), (300, 300), (0, 0, 255) ,3)
cv2.imshow('img',img)
cv2.waitKey(0)
(3)執行效果
(1)使用函數:
cv.putText(img,text,station, font, fontsize,color,thickness,cv.LINE_AA)
參數:
(2)示例代碼:
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png')
cv2.putText(img, "I am a pig", (100, 100), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255) ,3, cv2.LINE_AA)
cv2.imshow('img',img)
cv2.waitKey(0)
代碼解析:略(^_^)
(3)執行效果:
本文對圖像的讀入、繪畫做了一個比較詳細的闡述和代碼分析,接下來我們會在幾何變換和形態學的方向對圖像進行一系列的操作,敬請期待!!(主要是寫的多了,比較影響閱讀)