畫素值的修改
手動生成影象
影象的色彩空間
影象通道的分割與合併
開啟: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...