在平常使用影象處理中的時候,例如檢測追蹤的時候,我們經常需要用到畫圖函式,例如手動標定乙個目標,呼叫滑鼠時間,然後進行追蹤,或者檢測完乙個目標,畫上矩形或者其他形狀,然後進行追蹤,這些都是做影象處理的基礎。接下來我將對幾個常見的函式進行講解,並給出幾個平常追蹤的例子。
使用opencv 中cv2.line(),cv2.circle(),cv2.rectangle(),cv2.ellipse(),
cv2.puttext() 等函式進行畫圖。
1)cv2.line():劃線。
函式呼叫
import cv2
import numpy as np
img = np.zeros((512,512,3), dtype = np.uint8)
cv2.line(img, (10,10), (510,510), (0, 255,0),5)
#img :影象,起點座標,終點座標,顏色,線的寬度
2) cv2.circle():畫圓cv2.circle(img, (50,50), 10, (0,0,255),-1)
img: 影象,圓心座標,圓的半徑,顏色,線寬度(-1:表示對封閉影象進行填滿
3)cv2.rectangle():畫矩形* cv2.rectangle(img,(70,80),(90,100), (255,0,0),-1)*
img: 影象,起始座標,終點座標,顏色,線寬。
4)cv2.ellipse():畫橢圓cv2.ellipse(img, (150,150),(10,5),0,0,180,(0,127,0),-1)
img: 影象,中心點座標,長短軸,旋轉的部分,顯示的角度,顏色,線寬。
5) cv2.puttext(): 寫入字元的字型font = cv2.font_hershey_******x
新增字元函式:cv2.puttext(img, 『hxh』,(50,300),font,4,(255,0,255),2,cv2.line_a4)
接下來我們先做下人臉檢測(上篇部落格已經貼出程式),然後用矩形畫框,然後再利用再在人臉上給出標籤,下面我們一起來看下:
import cv2
import numpy as np
#first we need to load the required xml classifiers. then load our input image (or video) in grayscale mode
face_cascade=cv2.cascadeclassifier("/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml")#這是我ubuntu系統裡已經訓練好的分類器
eye_cascade=cv2.cascadeclassifier("/usr/share/opencv/haarcascades/haarcascade_eye.xml")
cap=cv2.videocapture(0)#開啟攝像頭
#open camera
while(1):
ret,frame=cap.read()
#get frame
gray=cv2.cvtcolor(frame,cv2.color_bgr2gray)
#灰度轉換
faces=face_cascade.detectmultiscale(gray,1.3,5)
#畫框
for (x,y,w,h) in faces:
cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)#frame影象,起點座標,終點座標(在這裡是x+w,y+h,因為w,h分別是人臉的長寬)顏色,線寬)
cv2.puttext(i,'face',(w/2+x,y-h/5),cv2.font_hershey_plain,2.0,(255,255,255),2,1)#標出face的標籤
roi_gray=gray[y:y+h, x:x+w]
roi_color=frame[y:y+h, x:x+w]
eyes = eye_cascade.detectmultiscale(roi_gray)#檢測眼睛
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)#同上畫出臉的框
cv2.puttext(i,'eye',(ex+x,ey+y),cv2.font_hershey_plain,2.0,(255,255,255),2,1)#標出眼睛的標籤
if cv2.waitkey(1)&0xff==ord('q')or ret==false:
break
cv2.imshow("xiaorun",frame)
cap.release()
cv2.destroyallwindows()
ios swift Spring動畫框架使用
pod spring git 動畫型別 pop 大小彈性縮放效果 shake 左右搖晃效果 morph 左右上下彈性變形效果 squeeze 左右上下彈性擠壓效果 wobble 左右擺動上下震動效果 swing 左右擺動效果 flipy 上下翻轉效果 flipx 左右翻轉效果 fall 掉落的效果 ...
Qt動畫框架
雖然現在大多數專案的動畫都是用qml在做了,反正了解了解也沒什麼壞處,或許以後也用得到。缺少一張圖。公司網速太慢,傳不上去。其實也就是qt動畫框架類,了解即可 qabstractanimation 所有動畫類的基類 qanimationgroup 動畫容器類的抽象基類 記憶一下,挺重要 qparal...
python opencv 滑鼠事件 畫框圈定目標
coding utf 8 created on tue dec 27 09 32 02 2016 author import cv2 import numpy as np current pos none tl none br none 滑鼠事件 defget rect im,title get r...