Opencv方法指令

2021-10-06 02:42:37 字數 2089 閱讀 4035

畫素值的修改

手動生成影象

影象的色彩空間

影象通道的分割與合併

開啟:img=cv2.imread(image_path)

顯示:cv2.imshow(「test」,img)

控制: cv2.waitkey()其中可以填顯示時間,>0則顯示那麼長時間,空/0則固定

關閉視窗: cv2.destroyallwindows()

開啟

cap=cv2.videocapture(video_path)

while(true):

ret,frame=cap.read()

if ret==false:

break

frame=cv2.flip(frame,1)#左右映象處理

cv2.imshow('frame',frame)

c=cv2.waitkey(30)#設定30秒

if c==27:#如果按esc鍵,則退出

break

cap.release()#釋放資源

方法一:暴力迴圈修改
img=cv2.imread(image_path)

h,w,c=img.shape

for row in range(h):

for col in range(w):

for ch in range(c):

pixel=img[row,col,ch]

img[row,col,ch]=255-pixel

#相當於將影象的每個通道,每個畫素點的值取反

方法二:直接修改
img=cv2.bitwise_not(src)#影象畫素取反

#功能與上面相同,相當於將每個畫素的值按位取反

可以先手動生成乙個具體大小的shape的影象區域,對其填充全0,或者全1,即生成乙個對應維數的全零、全一矩陣,然後在對其統一賦值

img=np.zeros([400,400,3],dtype=np.uint8)

img[:,:,2]=np.ones([400,400],np.uint8)*255

cv2.imshow("creat",img)

#生成乙個全零的三通道矩陣,並對第三個通道賦值為255

或者:img=img[:,:,2]

img.fill(255)

主要有rgb,gray,hsv,yuv

img=cv2.imread(image_path)

#灰度變換

gray=cv2.cvtcolor(img,cv2.color_bgr2gray)

#hsv變換

hsv=cv2.cvtcolor(img,cv2.color_bgr2hsv)

#yuv變換

yuv=cv2.cvtcolor(img,cv2.color_bgr2yuv)

cap=cv2.videocapture('./2.mp4')

while(true):

ret,frame=cap.read()

if ret==false:

break

''''''

hsv=cv2.cvtcolor(frame,cv2.color_bgr2hsv)#rgb轉hsv

lower_hsv=np.array([35,43,46])#綠色最低值

higher_hsv=np.array([77,255,255])#黃色最高值

mask=cv2.inrange(hsv,lowerb=lower_hsv,upperb=higher_hsv)#通過cv2.inrange,就可以找到影象中的綠色物體

cv2.imshow('frame',frame)

cv2.imshow('mask',mask)

if cv2.waitkey(30)==27:

break

cap.release()

b,g,r=cv2.split(src)#通過cv2.split進行分割

img=cv2.merge([b,g,r])#通過cv2.merge進行合併,但是其引數是乙個陣列形式

OpenCV 模版方法

解決的方案有傳統的方法和目前流行的深度學習方法 比如ssd演算法 這篇博文主要是關於opencv模板匹配的,所以主要講解opencv中的模板匹配方法。opencv 中的模板匹配總共有六種選項,包括 1.平方差匹配 method cv tm sqdiff 2.標準平方差匹配 method cv tm ...

常用指令方法

to free dentries and inodes 清空 目錄項 和 索引節點 to free pagecache,dentries and inodes 清空以上兩項 3.emmc 寫測試 toolbox dd if dev zero of var test.dbf count 30000 b...

OpenCV 計時方法

跑乙個程式除了看它報不報錯,還得計算時間效率對吧。那麼在基於c 的opencv工程中如何計時呢?一 gettickcount函式 double t double gettickcount various operations t gettickcount t gettickfrequency cou...