Fehleraufnahmen bei der Verwendung von picam2.capture_array, um ein Foto zu machen und sie in den RAM zu steckenPython

Python-Programme
Anonymous
 Fehleraufnahmen bei der Verwendung von picam2.capture_array, um ein Foto zu machen und sie in den RAM zu stecken

Post by Anonymous »

Ich verwende meinen Raspberry Pi, um zu versuchen, die Aufgabe zu erledigen, die ein Bild aufnimmt, und dann mit der Funktion get_angle den Referenzwinkel der blauen Punkte im Bild ermittelt. Dann den Überlebensmotor auf den Winkel zielen. Wenn ich jedoch mein Programm ausführe ist schon> verwendet, fährt trotzdem fort. Verwenden Sie gpio.setwarnings (false), um Warnungen zu deaktivieren. .CPP: 327 libcamera v0.4.0+50-83CB8101
20:07:40.926652928] [2435] Warn rpisdn sdn.cpp: 40 Verwenden von Legacy Sdn Tuning - Bitte bewegt Sdn in Rpi.denoise
[0: 07: 40.929008930] [2435] Info RPI VC4.CPP: 447 Registrierte Kamera/Base/SOC/I2C0MUX/I2C@1/OV5647@36 bis Unicam Dev/Dev/Media2 und ISP Dev/Dev/Media0
[0: 07: 40.929134722] [2435] Info rpi pipeline_base.cpp: 1121 Verwenden der Konfigurationsdatei
'/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.Yl'
< /blockquote>
Ich habe meinen Code so geändert: < /p>
from picamera2 import Picamera2
import cv2
import numpy as np
import time
import math
import argparse
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
PWM_pin = 32 #Define pin, frequency and duty cycle
freq = 50
dutyCycle = 7.5 #90 degrees at first#
#Values 0 - 100 (represents 4%, ~27 deg)
GPIO.setup(PWM_pin, GPIO.OUT) # Create PWM instance for pin w freqency
pwm = GPIO.PWM(PWM_pin, freq)
picam2 = Picamera2()
parser=argparse.ArgumentParser(description="lower and upper bound for trying")
parser.add_argument('--tim',default=10,help="length of time to run")
parser.add_argument('--delay',default=0.5,help="time between image captures")
parser.add_argument('--debug',action='store_true',default=False,help="debug mode")
args=parser.parse_args()

def get_duty(direction)
duty=(1/18)*direction +2.5
return duty

def get_angle(img,debug):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv, (90, 20, 130), (110, 255, 255))
cv2.imwrite('masked.jpg', mask)
M = cv2.moments(mask)
cX = int(M["m10"] / M["m00"])
cY = int(M["m01"] / M["m00"])
if M['m00']==0:
angle=360
print('no center of mass found')
else:
img_2=img.copy()
img_2 = cv2.circle(img_2, (cX,cY), 5, (0,0,255), 2) # red circle placed on the center of mass
cv2.imwrite('center_of_mass.jpg', img_2)
angle=180/math.pi*(math.atan((cX-0.5*img.shape[1])/(img.shape[0]-cY))) #calculate angle of reference
print(f'''angle in degree {angle:0.2f}''')
if debug== True:
print(f'center of mass:({cX},{cY})')
cv2.imshow("masked",mask)
cv2.imshow("center_of_mass",img_2)
cv2.waitKey(1000)
cv2.destroyAllWindows()
return angle

start_time=time.time()
now_time=time.time()

while now_time-start_time

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post