This commit is contained in:
yair-mantis 2023-12-26 15:34:22 +02:00
parent eaf7294d06
commit e7ab3b6c80

View File

@ -5,10 +5,8 @@ import numpy as np
from tqdm import tqdm
import pandas as pd
import pcapng
from struct import unpack
import matplotlib.pyplot as plt
from struct import unpack
from PIL import Image
from PIL import Image, ImageDraw
import cv2
@ -22,7 +20,7 @@ def tryget(obj, att):
if hasattr(obj, att):
return getattr(obj, att)
return None
df = pd.DataFrame([{'index': i, 'length': tryget(obj, 'packet_len')} for i, obj in enumerate(blocks)])
# get udp packets
@ -39,7 +37,8 @@ def parse(data):
del ret['hdr']
ret['data'] = data[hdr:]
return ret
df = pd.DataFrame([parse(d) for d in raw])
df2 = df[[c for c in df.columns if c != 'data']]
@ -60,33 +59,36 @@ def getframes(df):
def image16(frame, width, height, pixelformat='>H'):
return [Image.fromarray(np.frombuffer(frame, dtype=pixelformat).reshape(width, height)) for frame in frames if len(frame) == 2 * width * height]
return [
Image.fromarray(np.frombuffer(frame, dtype=pixelformat).reshape(width, height)) for frame in frames
if len(frame) == 2 * width * height
]
def showvideo(images):
# wip
videodims = images[0].size
fourcc = cv2.VideoWriter_fourcc(*'avc1')
video = cv2.VideoWriter("test.mp4",fourcc, 60,videodims)
img = Image.new('RGB', videodims, color = 'darkred')
#draw stuff that goes on every frame here
for i in range(0,60*60):
fourcc = cv2.VideoWriter_fourcc(*'avc1')
video = cv2.VideoWriter("test.mp4", fourcc, 60, videodims)
img = Image.new('RGB', videodims, color='darkred')
# draw stuff that goes on every frame here
for i in range(0, 60*60):
imtemp = img.copy()
# draw frame specific stuff here.
video.write(cv2.cvtColor(np.array(imtemp), cv2.COLOR_RGB2BGR))
video.release()
#def shape(frames, width, height, mode='RGB'):
# return [Image.frombytes('RGB', (width, height), frame) for frame in frames if len(frame) == width * height * 3]
# def shape(frames, width, height, mode='RGB'):
# return [Image.frombytes('RGB', (width, height), frame) for frame in frames if len(frame) == width * height * 3]
frames = getframes(df)
images = image16(frames, 384, 288)
for i, img in enumerate(tqdm(images)):
img.save(f'{i:04}.png')
#frame = b''.join(df.iloc[:32]['data'])
#Image.frombytes('RGB', (288, 256), frame).show()
start_len = len(b'T=(-1.665884e-08)*X^4+(1.347094e-05)*X^3+(-4.396264e-03)*X^2+(9.506939e-01)*X+(-6.353247e+01)\r\n ')
# frame = b''.join(df.iloc[:32]['data'])
# Image.frombytes('RGB', (288, 256), frame).show()
start_len = len(b'T=(-1.665884e-08)*X^4+(1.347094e-05)*X^3+(-4.396264e-03)*X^2+(9.506939e-01)*X+(-6.353247e+01)\r\n')
# 250 bytes at start of frame
equations = {x[:250].decode().strip() for x in df[df.part == 0]['data']}