Save brightest image from each high tide

hightide
Dan Howe 5 years ago
parent dac4fa17c7
commit 90c0eef95b

@ -7,6 +7,7 @@ import os
import glob
import time
import pytz
import shutil
import subprocess
from io import BytesIO
from datetime import datetime
@ -27,6 +28,7 @@ TIMEZONE = 'Australia/Sydney'
WAIT_TIME = 0.1
RECORDING_DURATION = 20
SILENT = True
IMAGE_MASK = 'mask/overtopping-mask.png'
username = ''
password = ''
@ -229,6 +231,28 @@ def create_video():
subprocess.run(command)
def get_brightness(jpg_name, mask):
"""Get mean brighness of an image with a mask applied
"""
# Load image
im = Image.open(jpg_name)
# Load mask and resize of necessary
width, height = mask.size
im = im.resize((width, height), Image.LANCZOS)
# Apply mask to image
im.paste(mask, mask=mask)
# Convert to greyscale
im_grey = im.convert('LA')
# Calculate mean intensity
b = np.array(im_grey).mean()
return b
# Create counter
t = []
@ -237,3 +261,17 @@ get_images()
# Create video
create_video()
# Load image mask
mask = Image.open(os.path.join(pwd, IMAGE_MASK))
# Find brightest image for current high tide
jpg_names = glob.glob(current_hightide_dir + '/jpg/*')
b = np.zeros(len(jpg_names))
for i, jpg_name in enumerate(jpg_names):
b[i] = get_brightness(jpg_name, mask)
# Copy brightest image to root directory for current year
src_name = jpg_names[b.argmax()]
dst_name = current_hightide_dir + '.jpg'
shutil.copy(src_name, dst_name)

Loading…
Cancel
Save