OpenCV на Raspberry Pi, как получить видео с Pi cam V2Python

Программы на Python
Anonymous
 OpenCV на Raspberry Pi, как получить видео с Pi cam V2

Сообщение Anonymous »

Прежде всего, я новичок в работе с raspberry pi и openCV, поэтому буду рад любым советам.
В настоящее время у меня установлена ​​raspberry pi 4 с камерой Raspberry V2, я проверил, подключена ли она с помощью команды rpicam-hello, и на короткое время получаю окно с видео, как и должно быть.
Проблема Я сталкиваюсь с этим, когда хочу работать с выводом моей камеры в реальном времени в скрипте Python. (Я пытаюсь отслеживать объекты на основе цвета с помощью openCV)
Я скопировал свой основной код из этого поста, https://www.geeksforgeeks.org/python/re ... ng-opencv/, и только изменил значения цвета и добавил несколько незначительных строк позже в скрипт в моей собственной версии.

Код: Выделить всё

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while 1:
ret,frame =cap.read()
# ret will return a true value if the frame exists otherwise False
into_hsv =cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
# changing the color format from BGr to HSV
# This will be used to create the mask
L_limit=np.array([98,50,50]) # setting the blue lower limit
U_limit=np.array([139,255,255]) # setting the blue upper limit

b_mask=cv2.inRange(into_hsv,L_limit,U_limit)
# creating the mask using inRange() function
# this will produce an image where the color of the objects
# falling in the range will turn white and rest will be black
blue=cv2.bitwise_and(frame,frame,mask=b_mask)
# this will give the color to mask.
cv2.imshow('Original',frame) # to display the original frame
cv2.imshow('Blue Detector',blue) # to display the blue object output

if cv2.waitKey(1)==27:
break
# this function will be triggered when the ESC key is pressed
# and the while loop will terminate and so will the program
cap.release()

cv2.destroyAllWindows()
Но когда я пытаюсь запустить это, я получаю несколько ошибок/предупреждений.

Код: Выделить всё

[ WARN:0@1.352] global cap_gstreamer.cpp:2839 handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Failed to allocate required memory.
[ WARN:0@1.358] global cap_gstreamer.cpp:1698 open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0@1.358] global cap_gstreamer.cpp:1173 isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
Traceback (most recent call last):
File "/home/pi/PROJECT2/tracking.py", line 12, in 
into_hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
cv2.error: OpenCV(4.10.0) ./modules/imgproc/src/color.cpp:196: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'
Мне кажется, что моя программа не может найти камеру, и это связано либо с недостаточным количеством памяти, выделенной для камеры (?), либо с неверным путем к камере, используемой в скрипте.
Я провел некоторые исследования в обоих случаях, для первого я не смог найти способ увеличить выделенную память и в целом очень плохо понимаю, что мне следует делать, чтобы исправить это.
Для последнего я рассмотрел возможность использования gst_pipeline для доступа к камере (на мой взгляд, это должен быть способ направить сценарий на поиск вывода камеры на raspi. Пожалуйста, поправьте меня, если я ошибаюсь.) Но это тоже не сработало.
При необходимости я могу более подробно рассказать о том, что я пробовал с конвейером, но сначала я хотел бы спросить, что на самом деле Кажется, проблема здесь, прежде чем я приложу слишком много усилий к неправильному «исправлению».
Заранее спасибо,
Ларри

Подробнее здесь: https://stackoverflow.com/questions/797 ... -pi-cam-v2

Вернуться в «Python»