{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Zadání semestrální práce 2015 - kvasinky" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cílem práce je sledování pohybu kvasinek v obrazu z mikroskopu. Úloha je rozdělena na dvě části:\n", "\n", "* Nalezení modelu pozadí\n", "* Sledování kvasinek\n", "\n", "V první části jde o nalezení pozadí. To je ve videích poměrně neměnné. Prakticky je nutné naimplementovat třídu `BackgroundModel`. \n", "\n", "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)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![kvasinky](http://147.228.240.61/zdo/2015/kvasinky-res.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Data:\n", "\n", "http://147.228.240.61/zdo/2015/converted/\n", "\n", "případně alternativně\n", "\n", "http://147.228.240.61/zdo/2015/converted2/\n", "\n", "\n", "Základ pro semestrální práci\n", "http://github.com/neduchal/ZDO2015_sem_prace/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Komentář k první části" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Využijte již připraveného základu pro semestrální práci a doplňte modul `cast_1/src/model.py`\n", "\n", "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.\n", "\n", "Funkce `get_model` vrací model - obrázek pozadí." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Práce s videem" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# http://147.228.240.61/zdo/2015/converted/" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import cv2\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "cap = cv2.VideoCapture('/home/mjirik/Stažené/kvasinky1')\n", "# prostor pro inicializaci\n", "\n", "\n", "while(cap.isOpened()):\n", " ret, frame = cap.read()\n", "\n", " gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n", " \n", " # zde místo pro práci s každým snímkem\n", " \n", " \n", "# cv2.imshow('frame',gray)\n", " if cv2.waitKey(1) & 0xFF == ord('q'):\n", " break\n", "# plt.imshow(frame)\n", "cap.release()\n", "cv2.destroyAllWindows()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Alternativní načítání obrázků z adresáře" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "import scipy\n", "import scipy.misc\n", "import glob\n", "# import model\n", "# import tracker\n", "\n", "\n", "# prostor pro inicializaci\n", "# 1.část\n", "# bm = model.BackgroundModel()\n", "# 2.část\n", "# tr = tracker.Tracker()\n", "\n", "files = sorted(glob.glob('/home/mjirik/tmp/kvasinky1/*.jpg'))\n", "\n", "for filename in files:\n", " img = scipy.misc.imread(filename)\n", " # zde místo pro práci s každým snímkem\n", " \n", " # 1.část\n", " # bm.add_frame(gray_img)\n", " # model = bm.get_model()\n", " # img_without_background = img - model\n", " \n", " # 2.část\n", " # tr.track_in_frame(gray_img)\n", "\n", "# ulož výsledky\n", "# tr.saveCsvFile() \n", "\n", "\n", "\n", " " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.6" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 1 }