opencv+python視頻實時質心顯示


利用opencv+python實現以下功能:

1)獲取實時視頻,分解幀頻;

2)將視頻做二值化處理;

3) 將視頻做濾波處理(去除噪點,獲取准確輪廓個數);

4)識別圖像輪廓;

5)計算質心;

6)描繪質心動態變化曲線;

# -*- coding: utf-8 -*-
"""
Created on Thu Apr 24 12:10:23 2018

@author: irene
"""

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline  
import math as mt
import cv2

cap = cv2.VideoCapture('1.avi')  #讀入視頻
c=1
plt.figure(figsize=(8,8),dpi=80) 
aa =[]
bb =[]
cc =[]
#uing = np.logspace(-3,2,121)
while(cap.isOpened()):  
    ret, frame = cap.read() 
    #分解為一幀一幀圖像
    if ret == True: 
        #cv2.imshow("frame",image) 
        img=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #彩色轉灰度  
       # print(frame)    
        ret,thresh= cv2.threshold(img,127,255,0)   #二值化  
        image,contours,hierarchy = cv2.findContours(thresh, 3, 1)  
        img = cv2.medianBlur(image,5) #進行中值濾波

        cnt = contours[1]   #選取其中的第一個輪廓,這幅圖像只有兩個輪廓
        M = cv2.moments(cnt)  
        cX=int(M["m10"]/M["m00"])   #計算質心
        cY=int(M["m01"]/M["m00"])
        
        cv2.drawContours(img,contours,-1,(0,255,0),2)
        cv2.circle(img,(cX,cY),7,(255,255,255),-1)
        cv2.putText(img,"",(cX-20,cY-20),
        cv2.FONT_HERSHEY_SIMPLEX,0.5,(255,255,255),2) 
        
        cv2.imshow("img",img)
        cv2.imwrite('img/'+str(c) + '.jpg',frame) #存儲為圖像  
        
       # for u in uing:
        aa.append(cX)
        bb.append(cY)
        cc.append(c)
       # plt.plot(c,cX,'k-') 
        
        #plt.plot(c,cX,color='red',linewidth=2.5,linestyle=':')
       # plt.plot(c,cX,'k^') 
        #plt.plot(c,cY,'yo:')
        c = c+1  
              
    else:
          break  
   # cv2.imshow('frame',gray)  #顯示標記后的圖像q
     
    if cv2.waitKey(1) & 0xFF == ord('q'):  
         break  
    
cap.release()  
cv2.destroyAllWindows() 

c1=np.var(aa)
c2=np.var(bb)

c1_1=c1/720*2.3*mt.pi/180
c1_2=c2/512*2.3*mt.pi/180

print(c1_1)
print(c1_2)

plt.plot(cc,aa) 
plt.show()
plt.plot(cc,bb)
plt.show()

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM