{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Popis objektů" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Vstup: binární obraz \n", "* Výstup: binární obraz, vektor příznaků\n", "* Cíl: popsat objekty čísly" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Identifikace oblastí" ] }, { "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 --no-import-all\n", "import skimage\n", "import skimage.io\n", "# skimage.morphology.label => skimage.measure.label\n", "import skimage.morphology\n", "import skimage.measure\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "imrgb = skimage.io.imread('http://www.kky.zcu.cz/uploads/courses/zdo/lesson7/1.jpg')\n", "imrgb = skimage.io.imread('objekty/label.jpg')\n", "im = skimage.color.rgb2gray(imrgb) > 0.5\n", "# v tomto případě má pozadí label 0\n", "imlabel0 = skimage.measure.label(im)\n", "# v tomto případě má pozadí label -1\n", "imlabel1 = skimage.measure.label(im, background=0)\n", "\n", "plt.subplot(131)\n", "plt.title('orig')\n", "plt.imshow(im, cmap='gray')\n", "plt.subplot(132)\n", "plt.title('label')\n", "plt.imshow(imlabel0, cmap='gray')\n", "plt.subplot(133)\n", "plt.title('label\\ndefined backgr.')\n", "plt.imshow(imlabel1, cmap='gray')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Práce s oblastí" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Následující příklad ukazuje vybrání zvolené oblasti" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "labels [0 1 2]\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"labels \", np.unique(imlabel1))\n", "\n", "plt.subplot(121)\n", "plt.title('Object 0')\n", "plt.imshow(imlabel1==0, cmap='gray')\n", "plt.subplot(122)\n", "plt.title('Object 1')\n", "plt.imshow(imlabel1==1, cmap='gray')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Jednoduché popisy oblastí" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Velikost\n", "* Eulerovo číslo \n", " $$E = S - N$$\n", " kde $S$ je počet souvislých oblastí a $N$ je počet děr\n", "* Výška, šířka\n", "* Projekce\n", "![projekce0](http://www.kky.zcu.cz/uploads/courses/zdo/lesson7/projekce.jpg)\n", "![projekce1](http://www.kky.zcu.cz/uploads/courses/zdo/lesson7/projekce2.jpg)\n", "\n", "* Výstřednost - poměr délek nejdelší tětivy a nejdelší tětivy k ní kolmé\n", "* Podlouhlost\n", "* Pravoúhlost\n", "* Směr\n", "* Nekompaktnost \n", " $$\\textrm{nekompaktnost}=\\frac{(\\textrm{délka hranice})^2}{\\textrm{velikost}}$$\n", "\n", "\n", "Využijeme funkce [regionprops](http://scikit-image.org/docs/dev/api/skimage.measure.html#skimage.measure.regionprops). \n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2]\n", "Centroid: (62.486293379994166, 84.67264508603091)\n", "Area: 6858\n", "Euler: -1\n", "Perimeter: 686.4823227814082\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(np.unique(imlabel1))\n", "props = skimage.measure.regionprops(imlabel1+1)\n", "\n", "print(\"Centroid: \", props[1].centroid)\n", "print(\"Area: \", props[1].area)\n", "print(\"Euler: \", props[1].euler_number)\n", "print(\"Perimeter: \", props[1].perimeter)\n", "ci = props[1].convex_image\n", "plt.imshow(ci)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Id: 0\n", "Centroid: (76.83132073428277, 84.18519521308279)\n", "Area: 18467\n", "Euler: -1\n", "\n", "Id: 1\n", "Centroid: (62.486293379994166, 84.67264508603091)\n", "Area: 6858\n", "Euler: -1\n", "\n", "Id: 2\n", "Centroid: (113.5, 146.51309408341416)\n", "Area: 2062\n", "Euler: 1\n", "\n" ] } ], "source": [ "for i in range(len(props)):\n", " print(\"Id: \", i)\n", " print(\"Centroid: \", props[i].centroid)\n", " print(\"Area: \", props[i].area)\n", " print(\"Euler: \", props[i].euler_number)\n", " print(\"\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Regionprops s intenzitami" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "props = skimage.measure.regionprops(imlabel1 + 1, im)\n", "props[1].mean_intensity\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "## stara implementace\n", "\n", "# props0 = skimage.measure.regionprops(imlabel1==0)\n", "# props = props0\n", "# print \"Centroid \", props[0].centroid\n", "# print \"Area \", props[0].area\n", "# print \"Euler \", props[0].euler_number\n", "\n", "\n", "# #print \"Centroid 1 \", props[1].centroid\n", "\n", "# props1 = skimage.measure.regionprops(imlabel1==1)\n", "# props = props1\n", "# print \"Centroid \", props[0].centroid\n", "# print \"Area \", props[0].area\n", "# print \"Euler \", props[0].euler_number\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Freemanův řetězový kód" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![freeman](https://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/29518/versions/1/screenshot.gif)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![freeman](https://image.slidesharecdn.com/simplyshape-121204125644-phpapp02/95/simply-shape-4-638.jpg?cb=1354625962)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Obecný momentový popis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Obecné momenty\n", "\n", "$$ M_{ij} = \\sum_x \\sum_y x^i, y^j I (x,y) $$\n", "\n", "[skimage.measure.moments()](http://scikit-image.org/docs/dev/api/skimage.measure.html#moments)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Centrální moment" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Souřadnice centroidu \n", "$ \\bar{x} = \\frac{M_{10}}{M_{00}}$\n", "$ \\bar{y} = \\frac{M_{01}}{M_{00}}$\n", "\n", "$$\n", "\\mu_{pq} = \\sum_x \\sum_y (x-\\bar{x})^p (y-\\bar{y})^q f(x,y)\n", "$$\n", "kde $f(x,y)$ je digitální obraz\n", "\n", "\n", "[skimage.measure.moments_central()](http://scikit-image.org/docs/dev/api/skimage.measure.html#moments-central)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Huovy momenty" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sedm momentů nezávislých na posunutí, změnu měřítka a rotaci. Prvních šest je nezávislých na zrcadlení. Poslední při zrcadlení mění znaménko.\n", "$$ I_1 = \\eta_{20} + \\eta_{02}$$\n", "$$ I_2 = (\\eta_{20} - \\eta_{02})^2 + 4\\eta_{11}^2$$\n", "$$ I_3 = (\\eta_{30} - 3\\eta_{12})^2 + (3\\eta_{21} - \\eta_{03})^2$$\n", "$$ I_4 = (\\eta_{30} + \\eta_{12})^2 + (\\eta_{21} + \\eta_{03})^2 $$\n", "$$ I_5 = (\\eta_{30} - 3\\eta_{12}) (\\eta_{30} + \\eta_{12})\\left[ (\\eta_{30} + \\eta_{12})^2 - 3 (\\eta_{21} + \\eta_{03})^2\\right] + (3 \\eta_{21} - \\eta_{03}) (\\eta_{21} + \\eta_{03})\\left[ 3(\\eta_{30} + \\eta_{12})^2 - (\\eta_{21} + \\eta_{03})^2\\right]$$\n", "$$ I_6 = (\\eta_{20} - \\eta_{02})[(\\eta_{30} + \\eta_{12})^2 - (\\eta_{21} + \\eta_{03})^2] + 4\\eta_{11}(\\eta_{30} + \\eta_{12})(\\eta_{21} + \\eta_{03})$$\n", "$$ I_7 = (3 \\eta_{21} - \\eta_{03})(\\eta_{30} + \\eta_{12})\\left[(\\eta_{30} + \\eta_{12})^2 - 3(\\eta_{21} + \\eta_{03})^2\\right] - (\\eta_{30} - 3\\eta_{12})(\\eta_{21} + \\eta_{03})\\left[3(\\eta_{30} + \\eta_{12})^2 - (\\eta_{21} + \\eta_{03})^2\\right]$$\n", "$$ $$\n", "[Huovy momenty na wiky](http://en.wikipedia.org/wiki/Image_moment#Rotation_invariant_moments)\n", "\n", "[skimage.measure.moments_hu()](http://scikit-image.org/docs/dev/api/skimage.measure.html#moments-hu)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "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.4" } }, "nbformat": 4, "nbformat_minor": 1 }