Python folium.raster_layers.videoOverlay () Видео не заполняет ограничивающую коробкуPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python folium.raster_layers.videoOverlay () Видео не заполняет ограничивающую коробку

Сообщение Anonymous »

Я пытаюсь наложить видео MP4 на карту folium, используя
folium.raster_layers.videooverlay (). Результатом является видео, которое я называю dyevideo.html. Однако изображение не отображается в рамке
на карте, Bounds = [[lat_min, lon_min], [lat_max, lon_max]] < /code>. Dyevideo.png, это скриншот видеофайла dyevideo.html. См. Https://casconorwich.org/pages/files2.html, чтобы увидеть скриншот для этого и других. Видео не заполняет всю красную рамку. Я постараюсь объяснить, как было создано это видео. На данный момент он содержит только 5 кадров PNG, но в конечном итоге будет содержать около 50. вставлен в океан в заливе Каско, штат Мэн со временем. Вывод помещается в массив [lat, lon, dyeconconcentration] , где LAT, LON определяется в каждой вершине треугольной сетки, которая имеет около 40 000 вершин. Для каждого из 5 раз я создаю файл PNG с помощью TripColor () :

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

tpp = ax1.tripcolor(lat,lon,triangles,dye1[t1+k,:],cmap='jet',shading= 'gouraud')
< /code>
Затем сохраните TPP в виде файла PNG: < /p>
img1=plt.savefig('tpp'+str(k+1)+str('.png'),  format='png',dpi=400,bbox_inches='tight',pad_inches=0.0,transparent=True)
< /code>
Чтобы увидеть, как одно из этих 5 изображений PNG выглядит на карте Folium, я использую
folium.raster_layers.imageoverlay следующим образом: < /p>
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>
Один из 5 наложений на карту folium показан на скриншоте, dyeframe1.png на моем веб -сайте.  Вы можете видеть, что это отдельное изображение PNG проецируется на карту folium точно так же, как и следовало, заполняя красный прямоугольник ограничивающей коробки. Следующим шагом является создание видео MP4 с 5 PNG -изображений, используя CV2 VideoWriter: < /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>
Итак, результат, Frames2png.mp4, - это всего лишь видео с 5 кадрами файлов PNG, каждый из которых идеально подходит в красном рамке. < /p>
< P> Наконец, folium.raster_layers.videooverlay () используется для наложения видео кадров2png.mp4 на карту folium: < /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>
Результатом является dyevideo.html, который неправильно вписывается в красное ограничивающее окно. Все отлично работает, за исключением folium.raster_layers.videooverlay () 
.
Я использовал ffmpeg для удаления любых нежелательных границ с изображений PNG и Frames2png.mp4. Я также использовал FFMPEG для изменения размера Frames2png.mp4 многочисленными способами повышения высоты и т. Д., позволяя аспекту изменять при необходимости. В каждом случае ограничивающая коробка, по -видимому, не контролирует размер и положение видео на карте Folium. Когда я смотрю на файл folium.raster_layers.py, я не вижу там ничего, что не помогло бы. Мне интересно, имели ли другие подобную проблему или могут дать несколько советов. Я просто хочу наложить видео на карту.

Подробнее здесь: https://stackoverflow.com/questions/793 ... unding-box
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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