Spaces:
Runtime error
Runtime error
import numpy as np | |
import cv2 | |
from PIL import Image | |
def noise_process(numpy_image, steps=149): | |
noisy_image_list = [] | |
noisy_image = numpy_image | |
noisy_image_list.append(noisy_image) | |
for step in range(steps): | |
noise = 255 * np.random.normal(0, 0.07*(step+1) * 0.1, numpy_image.size).reshape(numpy_image.shape) | |
noisy_image = noisy_image + noise | |
noisy_image_list.append(noisy_image) | |
return noisy_image_list | |
def generate_video(numpy_image): | |
save_path = "result.mp4" | |
width = 256 | |
hieght = 256 | |
fps = 30 | |
sec = 5 | |
image_lst = noise_process(numpy_image) | |
image_lst = np.array([(i-np.min(i))/(np.max(i)-np.min(i)) for i in image_lst]) | |
image_lst = np.round(image_lst * 255).astype(np.uint8) | |
copies = int((sec * fps) / len(image_lst)) | |
spill_over = sec * fps - copies * len(image_lst) | |
image_lst = np.repeat(image_lst, copies, axis=0) | |
image_lst = np.concatenate((image_lst, image_lst[:spill_over]), axis=0) | |
image_lst = image_lst[::-1] | |
fourcc = cv2.VideoWriter_fourcc(*'MP42') | |
video = cv2.VideoWriter(save_path, fourcc, float(fps), (width, hieght)) | |
for frame_count in range(fps * sec): | |
img = np.expand_dims(image_lst[frame_count],2) | |
video.write(img.astype(np.uint8)) | |
video.release() | |
return save_path | |
if __name__ == "__main__": | |
im = Image.open(r"C:\Users\folle\Downloads\ldm_images\Atelectasis\0_4.png") | |
im_to_disp = np.array(im) | |
generate_video(im_to_disp) | |