import glob
import cv2
import numpy as np
from PIL import Image
import init_auv as auv

imdir = '/Users/Mackeprang/Dropbox (Personlig)/Master Thesis/Pictures/20181005_084733.9640_Mission_1'
#imdir = auv.datasetPath_Mads()["Images"]
filenames = auv.imagesFilePath(imdir, '*.png')

prev_frame = None
orb = cv2.ORB_create()
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
for i, frame in enumerate(filenames):
    if auv.image_broken(frame):
        continue
    img = cv2.imread(frame)
    gray = auv.preprocess_image(img, unsharp=False)
    if prev_frame is None:
        prev_frame = gray
        kp1, des1 = orb.detectAndCompute(prev_frame, None)
    print "Numbers of features: " + str(len(kp1))
    kp2, des2 = orb.detectAndCompute(gray, None)
    matches = bf.match(des1, des2)
    matches = sorted(matches, key=lambda x: x.distance)
    img_match = cv2.drawMatches(prev_frame,
                                kp1,
                                gray,
                                kp2,
                                matches[:10],
                                None,
import glob
import cv2
import numpy as np
from PIL import Image
import  init_auv as auv
im_filename = '*.png'
imdir = '/Users/Mackeprang/Dropbox (Personlig)/Master Thesis/Pictures/20181005_084733.9640_Mission_1'
filenames = auv.imagesFilePath(imdir)
images = []
prev_frame = None

hsv = np.zeros_like(cv2.imread(filenames[0]))
hsv[...,1] = 255
for i,frame in enumerate(filenames):
    if auv.image_broken(frame):
        continue
    img = cv2.imread(frame)
    gray = auv.preprocess_image(img,size=None)

    if prev_frame is None:
        prev_frame = gray
        continue
    flow = cv2.calcOpticalFlowFarneback(prev_frame, gray, None, 0.5, 3, 30, 3, 5, 1.2, 0)
    mag, ang = cv2.cartToPolar(flow[..., 0], flow[..., 1])
    hsv[..., 0] = ang * 180 / np.pi / 2
    hsv[..., 2] = cv2.normalize(mag, None, 0, 255, cv2.NORM_MINMAX)
    bgr = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
    cv2.imshow("Match", bgr)
    key = cv2.waitKey()
    if key & 0xFF == ord('q'):
        break