Ich versuche, ein MP4 -Video mit
folium.raster_layers.videooverlay () auf eine Folium -Karte zu überlagern. Das Ergebnis ist ein Video, das ich Dyevideo.html nenne. Das Bild erscheint jedoch nicht im Benzkasten
auf der Karte, bounds = [[lat_min, lon_min], [lat_max, lon_max]] < /code>. Dyevideo.png, ist ein Screenshot der Videodatei dyevideo.html. Siehe https://casconorwich.org/pages/files2.html, um den Screenshot dafür zu sehen. Das Video füllt nicht das gesamte rote Begrenzungsfeld. Ich werde versuchen zu erklären, wie dieses Video erstellt wurde. Es enthält vorerst nur 5 PNG -Frames, enthält jedoch schließlich etwa 50. wird im Laufe der Zeit in den Ozean in Casco Bay, Maine, eingeführt. Die Ausgabe wird in einer Reihe von [Lat, Lon, Dyecon Centration] gegeben, wobei Lat, Lon an jedem Scheitelpunkt eines dreieckigen Netzes mit etwa 40.000 Eckpunkten verabreicht wird. Für jedes von fünfmal erstelle ich eine PNG -Datei mit TripColor () :
tpp = ax1.tripcolor(lat,lon,triangles,dye1[t1+k,:],cmap='jet',shading= 'gouraud')
< /code>
Dann speichern Sie TPP als PNG -Datei: < /p>
img1=plt.savefig('tpp'+str(k+1)+str('.png'), format='png',dpi=400,bbox_inches='tight',pad_inches=0.0,transparent=True)
< /code>
Um zu sehen, wie eines dieser 5 PNG -Bilder auf einer Folium -Karte aussehen.array1 = asarray(img1)
folium.raster_layers.ImageOverlay(
image = array1, name='Dye overlay',
bounds=[[lat_min,lon_min],[lat_max,lon_max]],
opacity=0.6, origin='upper',
mercator_project=True, cross_origin=False,
zindex=1,overlay=True, control=True,
show=True,
).add_to(map)
< /code>
Einer der 5 Overlays auf der Folium -Karte ist in einem Screenshot, fountharrame1.png auf meiner Website. Sie können sehen, dass dieses einzelne PNG -Bild genau so auf die Folium -Karte projiziert, wie sie sollte und das rote Rechteck des Begrenzungsboxs füllen. Der nächste Schritt besteht darin, ein MP4 -Video aus den 5 PNG -Bildern mit CV2 -Videowriter zu erstellen: < /p>
def images_to_video(image_folder, output_path, fps=0.6):
#Converts a folder of png images into a video.
images = [img for img in os.listdir(image_folder) if img.endswith("png")]
images.sort() # Ensure images are in order
frame = cv2.imread(os.path.join(image_folder, images[0]))
width,height = frame.shape[1],frame.shape[0] # here,1984,1348
video = cv2.VideoWriter(output_path, cv2.VideoWriter_fourcc(*'mp4v'),fps, (width,height))
for image in images:
img_path = os.path.join(image_folder, image)
frame = cv2.imread(img_path)
video.write(frame)
video.release()
print("Video Frames2png.mp4 created successfully at:", output_path)
if __name__ == "__main__":
output_path = '/Users/true/Python1/DyeFrames/Frames2/Frames2png.mp4'
images_to_video(image_folder, output_path)
map.save('DyeFrames2.html')
< /code>
Das Ergebnis Frames2png.mp4 ist also nur ein Video von 5 Frames von PNG -Dateien, die jeweils perfekt in das rote Begrenzungsfeld passen. < /p>
< P> Schließlich wird das folium.raster_layers.videooverlay () verwendet, um die Videorames2png.mp4 auf die Foliumkarte zu überlagern: < /p>
video = folium.raster_layers.VideoOverlay(
video_url= Frames2png.mp4,
bounds=[[lat_min,lon_min],[lat_max,lon_max]],
transparent=True,
keepAspectRatio=False,
mercator_project=True,
name="Dye Video",
opacity=0.6,
attr="Dye Overlay",
overlay= True,
autoplay=True,
control=True,
loop=True,
playsInline=True,
)
video.add_to(map)
map.save('DyeVideo.html')
< /code>
Das Ergebnis ist dyevideo.html, das nicht korrekt in das rote Begrenzungsfeld passt. Alles funktioniert großartig, bis auf das Folium.raster_layers.videooverlay ()
. Ich habe auch FFMPEG verwendet, um die Größe von Frames2png.mp4 in zahlreicher Weise zu ändern, um die Größe usw. zu erhöhen, wodurch das Aspektverhältnis nach Bedarf geändert werden kann. In jedem Fall scheint der Begrenzungsbox keine Kontrolle über die Größe und Position des Videos auf der Foliumkarte zu haben. Wenn ich mir die Datei folium.raster_layers.py ansehe, sehe ich dort nichts, was helfen würde. Ich frage mich, ob andere ein ähnliches Problem hatten oder Ratschläge geben können. Ich möchte nur ein Video auf eine Karte überlagern.
Ich versuche, ein MP4 -Video mit folium.raster_layers.videooverlay () auf eine Folium -Karte zu überlagern. Das Ergebnis ist ein Video, das ich Dyevideo.html nenne. Das Bild erscheint jedoch nicht im Benzkasten auf der Karte, bounds = [[lat_min, lon_min], [lat_max, lon_max]] < /code>. Dyevideo.png, ist ein Screenshot der Videodatei dyevideo.html. Siehe https://casconorwich.org/pages/files2.html, um den Screenshot dafür zu sehen. Das Video füllt nicht das gesamte rote Begrenzungsfeld. Ich werde versuchen zu erklären, wie dieses Video erstellt wurde. Es enthält vorerst nur 5 PNG -Frames, enthält jedoch schließlich etwa 50. wird im Laufe der Zeit in den Ozean in Casco Bay, Maine, eingeführt. Die Ausgabe wird in einer Reihe von [Lat, Lon, Dyecon Centration] gegeben, wobei Lat, Lon an jedem Scheitelpunkt eines dreieckigen Netzes mit etwa 40.000 Eckpunkten verabreicht wird. Für jedes von fünfmal erstelle ich eine PNG -Datei mit TripColor () : [code]tpp = ax1.tripcolor(lat,lon,triangles,dye1[t1+k,:],cmap='jet',shading= 'gouraud') < /code> Dann speichern Sie TPP als PNG -Datei: < /p> img1=plt.savefig('tpp'+str(k+1)+str('.png'), format='png',dpi=400,bbox_inches='tight',pad_inches=0.0,transparent=True) < /code> Um zu sehen, wie eines dieser 5 PNG -Bilder auf einer Folium -Karte aussehen.array1 = asarray(img1) folium.raster_layers.ImageOverlay( image = array1, name='Dye overlay', bounds=[[lat_min,lon_min],[lat_max,lon_max]], opacity=0.6, origin='upper', mercator_project=True, cross_origin=False, zindex=1,overlay=True, control=True, show=True, ).add_to(map) < /code> Einer der 5 Overlays auf der Folium -Karte ist in einem Screenshot, fountharrame1.png auf meiner Website. Sie können sehen, dass dieses einzelne PNG -Bild genau so auf die Folium -Karte projiziert, wie sie sollte und das rote Rechteck des Begrenzungsboxs füllen. Der nächste Schritt besteht darin, ein MP4 -Video aus den 5 PNG -Bildern mit CV2 -Videowriter zu erstellen: < /p> def images_to_video(image_folder, output_path, fps=0.6): #Converts a folder of png images into a video. images = [img for img in os.listdir(image_folder) if img.endswith("png")] images.sort() # Ensure images are in order frame = cv2.imread(os.path.join(image_folder, images[0])) width,height = frame.shape[1],frame.shape[0] # here,1984,1348 video = cv2.VideoWriter(output_path, cv2.VideoWriter_fourcc(*'mp4v'),fps, (width,height))
for image in images: img_path = os.path.join(image_folder, image) frame = cv2.imread(img_path) video.write(frame)
video.release() print("Video Frames2png.mp4 created successfully at:", output_path) if __name__ == "__main__": output_path = '/Users/true/Python1/DyeFrames/Frames2/Frames2png.mp4' images_to_video(image_folder, output_path) map.save('DyeFrames2.html') < /code> Das Ergebnis Frames2png.mp4 ist also nur ein Video von 5 Frames von PNG -Dateien, die jeweils perfekt in das rote Begrenzungsfeld passen. < /p> < P> Schließlich wird das folium.raster_layers.videooverlay () verwendet, um die Videorames2png.mp4 auf die Foliumkarte zu überlagern: < /p> video = folium.raster_layers.VideoOverlay( video_url= Frames2png.mp4, bounds=[[lat_min,lon_min],[lat_max,lon_max]], transparent=True, keepAspectRatio=False, mercator_project=True, name="Dye Video", opacity=0.6, attr="Dye Overlay", overlay= True, autoplay=True, control=True, loop=True, playsInline=True, ) video.add_to(map) map.save('DyeVideo.html') < /code> Das Ergebnis ist dyevideo.html, das nicht korrekt in das rote Begrenzungsfeld passt. Alles funktioniert großartig, bis auf das Folium.raster_layers.videooverlay () [/code]. Ich habe auch FFMPEG verwendet, um die Größe von Frames2png.mp4 in zahlreicher Weise zu ändern, um die Größe usw. zu erhöhen, wodurch das Aspektverhältnis nach Bedarf geändert werden kann. In jedem Fall scheint der Begrenzungsbox keine Kontrolle über die Größe und Position des Videos auf der Foliumkarte zu haben. Wenn ich mir die Datei folium.raster_layers.py ansehe, sehe ich dort nichts, was helfen würde. Ich frage mich, ob andere ein ähnliches Problem hatten oder Ratschläge geben können. Ich möchte nur ein Video auf eine Karte überlagern.
Ich erstelle eine Web-App mit Django und Folium. Ich habe eine Navigationsleiste und eine Folium-Karte auf der Webseite. Es funktioniert gut auf Computern und Geräten mit Querformat-Bildschirm, aber...
Kann mir jemand helfen, zu verstehen, warum mein Ansatz für die Erstellung eines Basemaps in Folium mit Geopandas problematisch ist? Ich habe einen Dummy -Beispieldatenframe (GDF_RAW), der die 9...
Ich habe 3D -Punkte aus der lauten Erkennung einer planaren Oberfläche. Ich möchte für diese Punkte ein orientiertes Begrenzungsfeld einfügen. Ich filtere es ungefähr durch Intensität, um nur Punkte...
Ich habe 3D -Punkte aus der lauten Erkennung einer planaren Oberfläche. Ich möchte für diese Punkte ein orientiertes Begrenzungsfeld einfügen. Ich filtere es ungefähr durch Intensität, um nur Punkte...
Derzeit versuche ich HLSJS zum Abspielen von M3U8 -Videos in meiner Webanwendung, aber wenn ich Video unabhängig vom Autoplay -Attribut lade, beginnt es zu spielen, wenn ich es zum ersten Mal lade....