最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

樹莓派+攝像頭實(shí)現(xiàn)對移動(dòng)物體的檢測

 更新時(shí)間:2019年06月22日 09:56:36   作者:Wang哈哈  
這篇文章主要為大家詳細(xì)介紹了樹莓派+攝像頭實(shí)現(xiàn)對移動(dòng)物體的檢測,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在上一篇文章中實(shí)現(xiàn)了樹莓派下對攝像頭的調(diào)用,有興趣的可以看一下:python+opencv實(shí)現(xiàn)攝像頭調(diào)用的方法

接下來,我們將使用python+opencv實(shí)現(xiàn)對移動(dòng)物體的檢測

一、環(huán)境變量的配置

我們可以參照上一篇文章對我們的樹莓派進(jìn)行環(huán)境的配置

當(dāng)我們將cv2的庫安裝之后,就可以實(shí)現(xiàn)對攝像頭的操作

二、攝像頭的連接

在此實(shí)驗(yàn)中,我使用的為usb攝像頭

當(dāng)我們連接攝像頭之后,終端輸入

ls /dev/video*

如果終端提示如下:

則表示攝像頭連接成功

三、編碼實(shí)現(xiàn)對移動(dòng)物體的檢測

使用python編寫程序,實(shí)現(xiàn)對移動(dòng)物體的檢測,代碼如下

#encoding=utf-8
import RPi.GPIO as GPIO
import cv2
import time
import os
 
GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.OUT)
 
camera = cv2.VideoCapture(0)
if camera is None:
 print('please connect the camera')
 exit()
 
fps = 30 
pre_frame = None
 
led = False
 
while True:
 start = time.time()
 res, cur_frame = camera.read()
 if res != True:
 break
 end = time.time()
 seconds = end - start
 if seconds < 1.0/fps:
 time.sleep(1.0/fps - seconds)
 
 cv2.namedWindow('img',0);
 #cv2.imshow('img', cur_frame)
 key = cv2.waitKey(30) & 0xff
 if key == 27:
 break
 
 gray_img = cv2.cvtColor(cur_frame, cv2.COLOR_BGR2GRAY)
 gray_img = cv2.resize(gray_img, (500, 500))
 gray_img = cv2.GaussianBlur(gray_img, (21, 21), 0)
 
 if pre_frame is None:
 pre_frame = gray_img
 else:
 img_delta = cv2.absdiff(pre_frame, gray_img)
 thresh = cv2.threshold(img_delta, 25, 255, cv2.THRESH_BINARY)[1]
 thresh = cv2.dilate(thresh, None, iterations=2)
 
 contours, hierarchy = cv2.findContours(thresh.copy(),cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
 for c in contours:
  if cv2.contourArea(c) < 1000:
  continue
  else:
 (x,y,w,h) = cv2.boundingRect(c)
 cv2.rectangle(cur_frame,(x,y),(x+w,y+h),(0,255,0),2)
 
 print("something is moving!!!")
 led = True
 if led == True:
 for i in range(30):
 GPIO.output(18,GPIO.HIGH)
 time.sleep(0.03)
 GPIO.output(18,GPIO.LOW)
 time.sleep(0.03)
  break
 
 cv2.imshow('img', cur_frame) 
 pre_frame = gray_img
 
camera.release()
cv2.destroyAllWindows()

我的樹莓派終端不能顯示中文,因此會(huì)出現(xiàn)亂碼

Ubuntu下的運(yùn)行結(jié)果如下

樹莓派下執(zhí)行結(jié)果如下:

此外,在檢測物體移動(dòng)的同時(shí),添加了led閃爍以及框選移動(dòng)部分的功能,led安裝方法請移步之前的博客

文章參考鏈接:OpenCV檢測場景內(nèi)是否有移動(dòng)物體

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

垣曲县| 化隆| 石渠县| 南宫市| 夏河县| 通江县| 乌拉特前旗| 方山县| 永和县| 湘潭市| 南江县| 永川市| 宽城| 长春市| 佳木斯市| 普兰县| 宣武区| 六安市| 婺源县| 青阳县| 梅河口市| 芜湖县| 高碑店市| 凤翔县| 岳阳县| 聂拉木县| 商城县| 宝应县| 梓潼县| 博客| 都昌县| 海南省| 乌拉特后旗| 石嘴山市| 樟树市| 关岭| 三门县| 监利县| 伊吾县| 石泉县| 铁岭县|