Videos in JMP abspielen und Videodateien auswertenLiebe Community,
da Videos als „Messdaten“ immer wichtiger werden, um sie auszuwerten,
Ich denke an eine Anwendung, die ein Video eines Prozesses mit anderen skalaren (Zeitreihen-)Daten kombiniert.
Beispiel: Ein JMP-Fenster, das in der rechten Hälfte ein Video abspielt und in der linken Hälfte andere Zeitreihendaten anzeigt,
zeigt mit einer vertikalen Linie an, wo auf der Zeitskala das Video das Bild zeigt, das einigen Prozess- oder Messdaten entspricht.
Für die Anzeige von Zeitreihendaten ist JMP die richtige Wahl, aber was ist mit der Wiedergabe von Videos?
Ist es möglich, ein Video in JMP abzuspielen?
Können beliebige Videodaten (zB mp4, mpeg, ... Dateien) gelesen/analysiert werden?
Irgendwelche Erfahrungen mit solchen Aufgaben, irgendwelche Vorschläge?
Danke im Voraus!
PS: mit JMP16.1 (Pro) auf win10
GrafikSkripterstellungRe: Videos in JMP abspielen und Videodateien auswertenGroß! Wenn Sie die Python+OpenCV-Route gehen, würde ich gerne sehen, was Sie getan haben.
(Es ist mir ein wenig peinlich, die Ausnahme am Dateiende nicht besser gehandhabt zu haben. Der rc==-1 erkennt alles, was schief geht, was gut genug ist, wenn alles gut läuft. Möglicherweise müssen Sie es versuchen ... außer im pyGet-Code, um zwischen der EOF-Ausnahme, die Sie erwarten, und anderen Ausnahmen (wie nicht genügend Speicher, ...) zu unterscheiden, die auftreten können.)
Irgendjemand anderes, OpenCV ist eine Computer-Vision-Bibliothek. Die Gesichtserkennung ist nur eine Möglichkeit.
Re: Videos in JMP abspielen und Videodateien auswertenVielen Dank, ich denke, das wird funktionieren, ich brauche etwas Zeit, um es im Detail zu testen.
Re: Videos in JMP abspielen und Videodateien auswertenJMP verarbeitet JPG- und PNG-Dateien ohne externe Software. Sie können sie in RGB-Matrizen umwandeln und Ihre eigene Verarbeitung durchführen.
Um ein Video Bild für Bild zu laden, könnten Sie OpenCV und Python verwenden, etwa so
JMP's Python interface using OpenCV to find a face.JMP's Python interface using OpenCV to find a face.Die Python-Schnittstelle von JMP verwendet OpenCV, um ein Gesicht zu finden.
ich benutzte python -m pip installiere opencv-python installieren.
pySetup =
"\[
# https://www.c-sharpcorner.com/article/detecting-faces-from-image-and-video-using-python/
# https://stackoverflow.com/questions/66942582/error-215assertion-failed-empty-in-function-cvcascadeclassifierdetec
# https://www.nps.gov/media/video/view.htm?id=C8B260AC-1DD8-B71B-0B793ECB496E64E5
import cv2
# Load the cascade
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
# To capture video from webcam.
#cap = cv2.VideoCapture(0)
cap = cv2.VideoCapture(file)
strcap = str(cap)
#print(cap,flush=True)
]\";
pyFinish = "\[
# Release the VideoCapture object
cap.release()
]\";
pyGet =
"\[
# Read the frame
_, img = cap.read()
#print(img,flush=True)
# Convert to grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Detect the faces
faces = face_cascade.detectMultiScale(gray, 1.1, 4)
# Draw the rectangle around each face
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
# Display
#cv2.imshow('Video', img)
#print(type(img),img.shape)
red = img[:,:,2]
green = img[:,:,1]
blue = img[:,:,0]
]\";
Python Init();
file = "https://www.nps.gov/nps-audiovideo/legacy/nature/C8B260AC-1DD8-B71B-0B793ECB496E64E5/nri-EOIntro3_240x134.mp4";
Python Execute( {file}, {strcap}, pySetup );
Show( strcap );
New Window( "x", bb = Border Box( Text Box( "" ) ), f=textbox() );
Wait( 1 );
frame=0;
While( 1,
x = Log Capture( rc = Python Execute( {}, {red, green, blue, faces}, pyGet ) );
If( Trim( x ) != "", Show( x ) );
If( rc == -1, Break() ); // -1 is python fail on eof
img = New Image( "rgb", {red / 255, green / 255, blue / 255} );
(bb << child) << delete;
bb << append( img );
frame += 1;
f<<SETTEXT></SETTEXT>
Ich habe das Beispiel aus dem Link ausgeliehen und es so modifiziert, dass JMP es jeweils ein Bild ansteuern kann. Es ist sehr schnell auf diesem Video mit niedriger Auflösung, aber die meisten Gesichter werden nicht erkannt, wahrscheinlich weil sie nicht direkt in die Kamera blicken. OpenCV hat viele Algorithmen, die Sie nützlich finden werden. ich baue Dies Video vor langer Zeit für die Bewegungserkennung.
Ich habe die Webcam nicht ausprobiert, glaube aber, dass sie funktionieren sollte.