import cv2 as cv
import numpy as np
def access_pixels(image):
''' 獲取影象畫素屬性資訊
'''
print(image.shape) # .shape() 獲得乙個tube,一行三列
height = image.shape[0] #shape第一維度:高
width = image.shape[1] #shape第二維度:寬
channels = image.shape[2] #shape第三維度:通道數目
print("height : %s, width : %s, channels : %s"%(height,width,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
''' **可用 image = cv.bitwise_not(image) 代替**
image = cv.bitwise_not(image)
cv.imshow("pixels_demo",image)
'''def create_image(): #建立新影象
img1 = np.zeros([400,400,3],np.uint8) #zero:畫素都為0,此時為黑色;形狀:400x400,三維;dtype型別賦值:無符號8位整型
img1[: , : , 0] = np.ones([400,400])*255 #對第一通道400x400的畫素賦值,**此時0*255=255**
img2 = np.zeros([400, 400, 1], np.uint8) #建立單通道的zero影象
#print(img2[0, 0, 0])
img2 = img2 + 127 # <--- 此時**0+255=255,0*x=0**
'''或用 img[: , : , 0] = np.ones([400,400])*127 兩種方法均可
'''print(img2[0, 0, 0])
cv.imshow("new1",img1)
cv.imshow("new2",img2)
m1 = np.ones([3,3],np.uint8)
m1.fill(222.220) #填充所有畫素值,結果為222
print(m1)
m2 = m1.reshape([1,9]) #更改為一行九列
print(m2)
m3 = np.array([2,3,4]) #直接定義一維的一行三列的陣列
print(m3)
m3 = np.array([[2.5658,3,5],[4,5,6]],np.uint8) #定義二維的二行三列的陣列
print(m3)
m3.fill(9) #全填充為9
'''獲取函式執行時間
'''t1 = cv.gettickcount() #獲取函式執行前電腦cpu時鐘數
create_image()
t2 = cv.gettickcount() #獲取函式執行後電腦cpu時鐘數
print("time : %s ms"%((t2-t1)/cv.gettickfrequency()*1000)) #除以每一秒時鐘走多少,此時單位為 微秒 (10e-3毫秒ms)
cv.waitkey(0)
cv.destroyallwindows()
opencv 學習筆記2
這裡只是實現了 2.1 節的 這次閱讀完了 opencv2 計算機視覺程式設計攻略 中的第二章,雖然大部分都很熟悉,但是還是應該記錄一下,好記星不如爛筆頭,何況自己離好記星還差很遠呢 我們這次完成的是在一幅上面新增雜訊,ie,新增椒鹽雜訊。操作很簡單,需要注意的地方有 1.mat的隨機訪問方法 at...
OpenCV學習筆記(2)
果然配置一遍之後還是有許多問題 昨天把實驗室的電腦配置成功了,但有許多地方的碰運氣配置的,今天配置了我自己的筆記本就出現了許許多多的問題 1.屬性管理器中property sheet中 鏈結器 輸入 附加依賴項 中的lib檔案需要根據你的opencv的版本號修改 中間環節貌似是在修改附加依賴項時去掉...
opencv學習筆記(2)
首先是最簡單的一串 顯示一張。coding utf 8import cv2 as cv import numpy as np def access pixels image print type image 列印出的型別 print image.shape 列印出垂直尺寸 水平尺寸 通道數 如果有的...