今天這一篇文章主要記錄一下OpenCV中一些基本的操作,包括讀取圖片,視頻以及反轉圖像的幾種操作:
一:圖片的載入
圖片載入很常用,很實用。。。
二:讀取視頻
讀取視頻分為從攝像頭中讀入和從硬盤中讀入,如果是攝像頭就在videocapture函數中填寫數值,0是默認的第一個攝像頭,1.是第二個,以此類推,如果沒有外置攝像頭,就直接“”填寫路徑就行。
三:打印圖片的類型
圖片的信息主要包括圖片的類型,圖片的尺寸,圖片的長寬高以及通道數,如果是彩色圖片通道數就是3,如果是黑白的圖片通道數為1。
我這里定義了一個函數來輸出圖片的信息:
這里可以看到:
圖片的大小是589*646的彩色3通道圖片,編碼方式是uint8.
四:圖像的對比度轉換
我們知道圖像的像素數是從0-255,如果實現圖像的反轉只需要遍歷每個像素然后每個像素減去255即可,這里用一個笨方法實現以下:
得出的結果是這樣:
似乎轉換了以后的圖片還挺好看的。
當然,這樣的方法太過于復雜,并且執行時間,效率都很低:
用時長達4555毫秒。。。
這時候我們使用OpenCV自帶的bitwise_not函數:
因為底層是使用的C++語言進行封裝,所以執行快得多,來對比下:
同樣的一張圖只需要17ms,舒服多了。
五:時間消耗的計算
上圖中的測試時間的計算用到了兩個函數:
GetTickcount函數:它返回從操作系統啟動到當前所經歷的計時周期數
GetTickFrequency函數:返回每秒的計時周期數
使用的方法:
t1 = cv.getTickCount()
#你需要的測試的函數或代碼
t2 = cv.getTickCount()
time = (t2-t1)/cv.getTickFrequency()
print("time:%s ms"%(time*1000))
最后,附上完整代碼,方便大家復現,下一篇文章就要開始學習圖像色彩空間的轉換,還需努力。如果有任何問題歡迎在底下評論,我們一起交流,一起加油!
import cv2 as cvimport numpy as np def access_pixel(image):#屬性的讀取 print(image.shape) height = image.shape[0] width = image.shape[1] channels = image.shape[2] print("width: %s, height: %s, channels: %s"%(width,height,channels)) #遍歷每一個像素點,太慢了,更新 for row in range(height): for col in range(width): for c in range(channels): pv = image[row,col,c] image[row,col,c] = 255-pv cv.imshow("numpy_test",image) def inverse(img): dis = cv.bitwise_not(img) cv.imshow("inverse",dis) def create_image(): ''' img = np.zeros([400,400,4],np.uint8) img[ :, :,0] = np.ones([400,400])*255 #對通道進行賦值,0是藍通道,1是綠通道,2是紅色通道,多通道 cv.imshow("new_image",img) ''' #初始化灰度圖像 img2 = np.zeros([400,400,1],np.uint8) img2[:,:,0] = np.ones([400,400])*127 #img2 = img2*127 cv.imshow("new_image_2",img2) #維度變換 m1 = np.ones([3,3],np.uint8) m1.fill(12222.388) print(m1) m2 = m1.reshape([1,9]) print(m2) print("---------HELLO-----PYTHON--------------------")src = cv.imread("D:/1.png")cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)cv.imshow("input image",src)t1 = cv.getTickCount()#access_pixel(src)#create_image()inverse(src)t2 = cv.getTickCount()#測試時間消耗time = (t2-t1)/cv.getTickFrequency()print("time:%s ms"%(time*1000))cv.waitKey(0)cv.destroyAllWindows()
責任編輯:xj
原文標題:【CV學習筆記】OpenCV基本操作
文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
-
CV
+關注
關注
0文章
53瀏覽量
16879 -
代碼
+關注
關注
30文章
4803瀏覽量
68775 -
OpenCV
+關注
關注
31文章
635瀏覽量
41405
原文標題:【CV學習筆記】OpenCV基本操作
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論