Spaces:
Runtime error
Runtime error
import os | |
import cv2 | |
import matplotlib.pyplot as plt | |
from PIL import Image | |
def scale(img, xScale, yScale): | |
res = cv2.resize(img, None, fx=xScale, fy=yScale, interpolation=cv2.INTER_AREA) | |
return res | |
def crop(infile, height, width): | |
im = Image.open(infile) | |
imgwidth, imgheight = im.size | |
for i in range(imgheight // height): | |
for j in range(imgwidth // width): | |
box = (j * width, i * height, (j + 1) * width, (i + 1) * height) | |
yield im.crop(box) | |
def averagePixels(path): | |
r, g, b = 0, 0, 0 | |
count = 0 | |
pic = Image.open(path) | |
for x in range(pic.size[0]): | |
for y in range(pic.size[1]): | |
imgData = pic.load() | |
tempr, tempg, tempb = imgData[x, y] | |
r += tempr | |
g += tempg | |
b += tempb | |
count += 1 | |
return (r / count), (g / count), (b / count), count | |
def convert_frame_to_grayscale(frame): | |
grayframe = None | |
gray = None | |
if frame is not None: | |
cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) | |
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) | |
gray = scale(gray, 1, 1) | |
grayframe = scale(gray, 1, 1) | |
gray = cv2.GaussianBlur(gray, (9, 9), 0.0) | |
return grayframe, gray | |
def prepare_dirs(keyframePath, imageGridsPath, csvPath): | |
if not os.path.exists(keyframePath): | |
os.makedirs(keyframePath) | |
if not os.path.exists(imageGridsPath): | |
os.makedirs(imageGridsPath) | |
if not os.path.exists(csvPath): | |
os.makedirs(csvPath) | |
def plot_metrics(indices, lstfrm, lstdiffMag): | |
plt.plot(indices, y[indices], "x") | |
l = plt.plot(lstfrm, lstdiffMag, 'r-') | |
plt.xlabel('frames') | |
plt.ylabel('pixel difference') | |
plt.title("Pixel value differences from frame to frame and the peak values") | |
plt.show() |