最近實習的公司leader叫我看看OpenCV,所以自己找些資料學學,然後記個筆記。
首先是導入庫函數
import numpy as np
然後最基本的就是讀取
src = cv.imread("E:/OpenCv/photo.jpg", 1)
imread()的第二個參數爲代表讀取模式,爲0代表以灰度模式讀入圖像,爲1代表讀入彩色圖像
例如:
然後我們在顯示出來。
代碼
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
cv.waitKey(0)
cv.destoryAllWindows()
我們以不同的模式讀取圖片,有兩種不同的結果。
我們讀取的這個src,是用numpy存儲的,我們來讀取每個像素點。
def get_photo(src):
print(src.shape)
width = src.shape[0]
height = src.shape[1]
channel = src.shape[2]
print("width: %s,height %s, height:%s" % (width, height, channel))
for i in range(width):
for j in range(height):
for k in range(channel):
src[i, j, k] = 255 - src[i, j, k]
然後我們繼續顯示:
接下來就是圖片的寫入。
cv.imwrite("E:/OpenCv/1.jpg", src)
就是當我們按下S鍵的時候,保存圖片到目錄,然後退出,按下ESC鍵的時候,直接退出。
代碼
k = cv.waitKey(0)
if k == 27:
cv.destroyAllWindows() # wait ESC key to exit
elif k == ord('s'):
cv.imwrite("E:/OpenCv/1.jpg", src)
cv.destoryAllWindows()
還有我們進行通道分離。因爲有三通道,BGR。
b, g, r = cv.split(src) # 通道分離
cv.imshow("blue", b)
cv.imshow("green", g)
cv.imshow("red", r)
src1 = cv.merge([b, g, r]) #對通道進行合併
參考資料: