I have this piece of code to draw text on a picamera2 video using OpenCV.
this code is not writing the string onto the video it's just showing the regular video. I've tried looking for solutions and I can't find anything.
Code:
from picamera2 import Picamera2from picamera2.encoders import H264Encoderimport numpy as npimport cv2import timeWIDTH = 1280HEIGHT = 720FRAME_RATE = 60# Setting up Cameravidname = f"{AnimalName}_WCST_Step8_EDS&IDS_Corr_Alt_{datetime.now().strftime('%Y%m%d_%H%M%S')}_Video"def signal_handler(signal, frame): print('Program exits normally.') picam2.stop_recording() picam2.stop() os.system(f"ffmpeg -i {vidname}.h264 -vcodec copy {vidname}.mp4") print("Save video sucessful.") sys.exit(0)signal.signal(signal.SIGINT, signal_handler)picam2 = Picamera2()video_config = picam2.create_video_configuration(main={"size": (WIDTH, HEIGHT), "format": "RGB888"})picam2.configure(video_config)encoder = H264Encoder(10000000)picam2.start()picam2.set_controls({"FrameRate": FRAME_RATE})picam2.start_recording(encoder, f"{vidname}.h264")# Setting camera text overlaycolour = whiteorigin = (85, 30)font = cv2.FONT_HERSHEY_SIMPLEXscale = 1thickness = 2overlay = np.zeros((1280, 720, 4), dtype=np.uint8)cv2.putText(overlay, "ITI: " + str(time.time()), origin, font, scale, colour, thickness)picam2.set_overlay(overlay)time.sleep(15)cv2.putText(overlay, "Trial " + str(trialnum) + ": " + str(time.time()), origin, font, scale, colour, thickness)picam2.set_overlay(overlay)
Statistics: Posted by catchall — Tue Apr 30, 2024 9:54 pm — Replies 0 — Views 16