#!/usr/bin/env python # coding: utf-8 # # Zadání semestrální práce 2015 - kvasinky # Cílem práce je sledování pohybu kvasinek v obrazu z mikroskopu. Úloha je rozdělena na dvě části: # # * Nalezení modelu pozadí # * Sledování kvasinek # # V první části jde o nalezení pozadí. To je ve videích poměrně neměnné. Prakticky je nutné naimplementovat třídu `BackgroundModel`. # # Druhá část řeší vlastní sledování kvasinek. Tam je úkolem nalezení pohybující se kvasinky, určení její polohy v pixelech a směru jejího pohybu (předpokládanou polohu v následujícím framu). # ![kvasinky](http://147.228.240.61/zdo/2015/kvasinky-res.png) # Data: # # http://147.228.240.61/zdo/2015/converted/ # # případně alternativně # # http://147.228.240.61/zdo/2015/converted2/ # # # Základ pro semestrální práci # http://github.com/neduchal/ZDO2015_sem_prace/ # ## Komentář k první části # Využijte již připraveného základu pro semestrální práci a doplňte modul `cast_1/src/model.py` # # Funkce `add_frame` může být volána například pro každý snímek videa a můžete ji využívat pro zadávání dat pro trénování a zpřesňování modelu. # # Funkce `get_model` vrací model - obrázek pozadí. # ## Práce s videem # In[2]: get_ipython().run_line_magic('pylab', 'inline') # In[2]: # http://147.228.240.61/zdo/2015/converted/ # In[3]: import numpy as np import cv2 import matplotlib.pyplot as plt # In[7]: cap = cv2.VideoCapture('/home/mjirik/Stažené/kvasinky1') # prostor pro inicializaci while(cap.isOpened()): ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # zde místo pro práci s každým snímkem # cv2.imshow('frame',gray) if cv2.waitKey(1) & 0xFF == ord('q'): break # plt.imshow(frame) cap.release() cv2.destroyAllWindows() # ## Alternativní načítání obrázků z adresáře # In[8]: import scipy import scipy.misc import glob # import model # import tracker # prostor pro inicializaci # 1.část # bm = model.BackgroundModel() # 2.část # tr = tracker.Tracker() files = sorted(glob.glob('/home/mjirik/tmp/kvasinky1/*.jpg')) for filename in files: img = scipy.misc.imread(filename) # zde místo pro práci s každým snímkem # 1.část # bm.add_frame(gray_img) # model = bm.get_model() # img_without_background = img - model # 2.část # tr.track_in_frame(gray_img) # ulož výsledky # tr.saveCsvFile()