{"id":41,"date":"2022-09-20T17:07:56","date_gmt":"2022-09-20T15:07:56","guid":{"rendered":"https:\/\/ics.science.upjs.sk\/ano\/?page_id=41"},"modified":"2023-09-07T14:42:07","modified_gmt":"2023-09-07T12:42:07","slug":"cvicenia-2022","status":"publish","type":"page","link":"https:\/\/ics.science.upjs.sk\/ano\/cvicenia-2022\/","title":{"rendered":"Cvi\u010denia 2022"},"content":{"rendered":"<p>Rie\u0161enia z cvi\u010den\u00ed &#8211; <a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\">GITLAB<\/a><\/p>\n<hr \/>\n<h2>7.12.2022 &#8211; <a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\/-\/blob\/master\/panorama.py\">Python k\u00f3d<\/a><\/h2>\n<p>\u00daloha:<\/p>\n<ul>\n<li>Z google street view zoberte dva obr\u00e1zky, ktor\u00e9 maj\u00fa \u010diasto\u010dn\u00e9 prekrytie<\/li>\n<li>Na obr\u00e1zkoch n\u00e1jdite features pomocou SIFT (a vykreslite)<\/li>\n<li>N\u00e1jdite zhodu medzi features (a vizualizujte)<\/li>\n<li>N\u00e1jdite homografiu pre prav\u00fd obr\u00e1zok a aplikujte transform\u00e1ciu, ktor\u00e1 spoj\u00ed obr\u00e1zky do panor\u00e1my.<\/li>\n<\/ul>\n<hr \/>\n<h2>23.11.2022<\/h2>\n<p>GrabCut, K-means<\/p>\n<hr \/>\n<h2>16.11.2022<\/h2>\n<p>samostatn\u00e1 pr\u00e1ca &#8211; kont\u00fary, clustering, grabcut<\/p>\n<hr \/>\n<h2>9.11.2022 &#8211; python k\u00f3d<\/h2>\n<p><em>\u00daloha \u010d. 1:\u00a0<\/em><\/p>\n<p>Na vhodn\u00fdch obr\u00e1zkoch presk\u00famajte fungovanie Hough transform\u00e1cie.<\/p>\n<ol>\n<li><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_houghlines\/py_houghlines.html\">Hough line transform<\/a> &#8211; ak\u00fd je praktick\u00fd rozdiel medzi met\u00f3dami HoughLines a HoughLinesP? Ko\u013eko \u010diar n\u00e1jde transform\u00e1cia na obr\u00e1zku?<\/li>\n<li><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_houghcircles\/py_houghcircles.html\">Hough circle transform<\/a> &#8211; na ak\u00e9 typy obr\u00e1zkov je vhodn\u00e9 pou\u017ei\u0165 t\u00fato transform\u00e1ciu?<\/li>\n<\/ol>\n<p><em>\u00daloha \u010d. 2:<\/em><\/p>\n<p>Na vhodn\u00fdch obr\u00e1zkoch presk\u00famajte fungovanie detekcie rohov.<\/p>\n<ol>\n<li><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_feature2d\/py_features_harris\/py_features_harris.html#harris-corners\">Harris corner detector<\/a><\/li>\n<li><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_feature2d\/py_shi_tomasi\/py_shi_tomasi.html#shi-tomasi\">Shi-Tomasi corner detector<\/a><\/li>\n<\/ol>\n<p>Ako sa l\u00ed\u0161i v\u00fdstup pri aplikovan\u00ed t\u00fdchto dvoch met\u00f3d? Shi-Tomasi je (vraj) vhodnej\u0161\u00ed pre trackovanie &#8211; porovnajte v\u00fdstup oboch met\u00f3d na nieko\u013ek\u00fdch sn\u00edmkoch videa.<\/p>\n<hr \/>\n<p><strong>2.11.2022<\/strong> &#8211; cvi\u010denie zru\u0161en\u00e9<\/p>\n<hr \/>\n<h2>26.10.2022 &#8211; python k\u00f3d (<a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\/-\/blob\/master\/fourier.py\">Fourier<\/a>, <a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\/-\/blob\/master\/bilboard.ipynb\">transform\u00e1cie<\/a>)<\/h2>\n<p><em>\u00daloha \u010d. 1:<\/em><\/p>\n<ol>\n<li>Stiahnite si <a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\/-\/blob\/master\/fourier.py\">k\u00f3d<\/a> pou\u017eitia fourierovej transform\u00e1cie na odstr\u00e1nenie periodick\u00e9ho \u0161umu<\/li>\n<li>Vysk\u00fa\u0161ajte s vlastn\u00fdmi obr\u00e1zkami (odpor\u00fa\u010dam googli\u0165 <em>periodic noise<\/em>)<\/li>\n<\/ol>\n<p><em>\u00daloha \u010d. 2:<\/em><\/p>\n<ol>\n<li>Zoberte si dva obr\u00e1zky &#8211; jeden portr\u00e9t nejakej osoby a druh\u00fd nejak\u00fd priestor s \u010distou plochou (stena budovy, bilboard, obrazovka&#8230;).<\/li>\n<li>Manu\u00e1lne n\u00e1jdite 4 body &#8211; rohy danej plochy<\/li>\n<li>Pou\u017eite <a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_geometric_transformations\/py_geometric_transformations.html\">perspective transform\u00e1ciu<\/a> na prisp\u00f4sobenie portr\u00e9tu na rozmer danej plochy<\/li>\n<li>Vytvorte masku, pomocou ktorej v origin\u00e1lnom obr\u00e1zku vytmav\u00edte dan\u00fa plochu<\/li>\n<li>Spojte obr\u00e1zky transformovan\u00e9ho portr\u00e9tu a priestoru s vytmavenou plochou<\/li>\n<li>(volite\u013ene) Upravte k\u00f3d tak, aby sa body evidovali pomocou <a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_gui\/py_mouse_handling\/py_mouse_handling.html#mouse-handling\">kliknutia my\u0161ou<\/a>.<\/li>\n<\/ol>\n<hr \/>\n<h2>19.10.2022 &#8211; python k\u00f3d (<a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\/-\/blob\/master\/cvicenie5_canny.py\">Canny<\/a>, <a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\/-\/blob\/master\/cvicenie5_lsd.py\">LSD<\/a>)<\/h2>\n<p><em>\u00daloha \u010d. 1:<\/em><\/p>\n<ol>\n<li>Vysk\u00fa\u0161ajte <a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_canny\/py_canny.html#canny\">Cannyho detektor<\/a> na n\u00e1jdenie hr\u00e1n v obr\u00e1zku.<\/li>\n<li>V opencv pridajte <a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_gui\/py_trackbar\/py_trackbar.html#trackbar\">trackbar<\/a> na interakt\u00edvnu zmenu parametrov &#8211; prahov pri detekcii hr\u00e1n.<\/li>\n<li>Sk\u00faste n\u00e1js\u0165 ide\u00e1lnu hodnotu prahov pre konkr\u00e9tny obr\u00e1zok<\/li>\n<\/ol>\n<p><em>\u00daloha \u010d. 2:<\/em><\/p>\n<ol>\n<li>Aplikujte <a href=\"https:\/\/docs.opencv.org\/4.x\/db\/d73\/classcv_1_1LineSegmentDetector.html\">Line Segment Detector<\/a> algoritmus a (cez debug) pozorujte v\u00fdstup<\/li>\n<li>Vykreslite \u010diary do pr\u00e1zdneho obr\u00e1zka (\u010dierny resp. biely a farebn\u00e9 \u010diary)<\/li>\n<li>Numpy v\u00fdsledok po\u013ea \u010diar prekonvertujte do Pandas DataFrame<\/li>\n<li>Do DataFrame pridajte st\u013apec s hodnotou d\u013a\u017eky \u010diary<\/li>\n<li>Odfiltrujte \u010diary, aby zostali len dlh\u00e9 (dlh\u0161ie ako zadan\u00fd po\u010det pixelov)<\/li>\n<li>Vykreslite len dlh\u00e9 \u010diary<\/li>\n<\/ol>\n<p>Pozn.: Posledn\u00e9 dve pod\u00falohy neboli roben\u00e9 na cvi\u010den\u00ed, ale s\u00fa doplnen\u00e9 v k\u00f3de.<\/p>\n<hr \/>\n<h2>12.10.2022 &#8211; <a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\/-\/blob\/master\/cvicenie4.py\">python k\u00f3d<\/a><\/h2>\n<p><em>\u00daloha \u010d. 1:<\/em><\/p>\n<ol>\n<li>Pripome\u0148te si, \u010do je <a href=\"https:\/\/setosa.io\/ev\/image-kernels\/\">Image kernel<\/a>.<\/li>\n<li>Pripravte si obr\u00e1zok, na ktorom si vysk\u00fa\u0161ate r\u00f4zne <a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_filtering\/py_filtering.html#filtering\">filtre<\/a>.<\/li>\n<li>Vysk\u00fa\u0161ajte blur, gaussianBlur a medianBlur<\/li>\n<li>Pridajte do obr\u00e1zka salt &amp; pepper \u0161um a aplikujte filtrovanie.<\/li>\n<li>Aplikujte vlastn\u00fd kernel (met\u00f3da filter2d) &#8211; odpor\u00fa\u010dan\u00e9 sharpen, edge.<\/li>\n<li>Pridajte do obr\u00e1zka gaussovsk\u00fd \u0161um a pok\u00faste sa odstr\u00e1ni\u0165 ho.<\/li>\n<\/ol>\n<hr \/>\n<h2>5.10.2022 &#8211; <a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\/-\/blob\/master\/cvicenie3.py\">python k\u00f3d<\/a><\/h2>\n<p><em>\u00daloha \u010d. 1:\u00a0<\/em><\/p>\n<ol>\n<li>Na vybranom \u0161edot\u00f3novom obr\u00e1zku si vysk\u00fa\u0161a\u0165 vykreslenie histogramu.<\/li>\n<li>Vyrovna\u0165 histogram a vykresli\u0165 v\u00fdsledn\u00fd obr\u00e1zok aj histogram. Vhodne pri tom vyu\u017ei\u0165 funkcie.<\/li>\n<li>Prehra\u0165 video, kde ka\u017ed\u00e1 sn\u00edmka bude ma\u0165 upraven\u00fd obr\u00e1zok vyrovnan\u00edm histogramu.<\/li>\n<\/ol>\n<p><em>\u00daloha \u010d. 2:<\/em><\/p>\n<ol>\n<li>Vybra\u0165 si obr\u00e1zok nejak\u00e9ho textu (pr\u00edpadne in\u00fd vhodn\u00fd obr\u00e1zok).<\/li>\n<li>Vytvori\u0165 \u0161edot\u00f3nov\u00fd (cvtColor) a n\u00e1sledne bin\u00e1rny obr\u00e1zok (thresholding)<\/li>\n<li>Aplikova\u0165 vybran\u00e9 met\u00f3dy morfol\u00f3gie<\/li>\n<\/ol>\n<ul>\n<li><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_gui\/py_video_display\/py_video_display.html#display-video\">Pr\u00e1ca s videom v opencv<\/a><\/li>\n<li><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_histograms\/py_table_of_contents_histograms\/py_table_of_contents_histograms.html\">Vyrovn\u00e1vanie (ekvaliz\u00e1cia) histogramov<\/a><\/li>\n<li><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_thresholding\/py_thresholding.html\">Thresholding<\/a> &#8211; ako zo \u0161edot\u00f3nov\u00e9ho obr\u00e1zka z\u00edska\u0165 bin\u00e1rny<\/li>\n<li><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_imgproc\/py_morphological_ops\/py_morphological_ops.html\">Matematick\u00e1 morfol\u00f3gia<\/a> &#8211; dilat\u00e1cia, er\u00f3zia a \u010fal\u0161ie v opencv<\/li>\n<\/ul>\n<hr \/>\n<h2>28.9.2022 &#8211; <a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\/-\/blob\/master\/cvicenie2.py\">python k\u00f3d<\/a><\/h2>\n<p>Ukladanie obr\u00e1zkov do s\u00faboru, vykreslenie histogramu, bin\u00e1rna maska.<\/p>\n<hr \/>\n<h2>21.9.2022 &#8211; <a href=\"https:\/\/gitlab.science.upjs.sk\/analyza-obrazu\/ano-2022\/-\/blob\/master\/cvicenie1.py\">python k\u00f3d<\/a><\/h2>\n<p>Na\u010d\u00edtanie obr\u00e1zka, zobrazenie cez OpenCV a Matplotlib, \u00faprava po\u013ea\/obr\u00e1zka.<\/p>\n<p><a href=\"https:\/\/learnopencv.com\/why-does-opencv-use-bgr-color-format\/\">Pre\u010do pou\u017e\u00edva OpenCV BGR form\u00e1t<\/a><\/p>\n<hr \/>\n<p>Dokument\u00e1cia:<\/p>\n<ul>\n<li><a href=\"https:\/\/opencv24-python-tutorials.readthedocs.io\/en\/latest\/py_tutorials\/py_tutorials.html\">Python OpenCV<\/a><\/li>\n<li><a href=\"https:\/\/numpy.org\/doc\/stable\/user\/absolute_beginners.html\">Numpy<\/a><\/li>\n<li><a href=\"https:\/\/pandas.pydata.org\/docs\/getting_started\/index.html\">Pandas<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Rie\u0161enia z cvi\u010den\u00ed &#8211; GITLAB 7.12.2022 &#8211; Python k\u00f3d \u00daloha: Z google street view zoberte dva obr\u00e1zky, ktor\u00e9 maj\u00fa \u010diasto\u010dn\u00e9 prekrytie Na obr\u00e1zkoch n\u00e1jdite features pomocou SIFT (a vykreslite) N\u00e1jdite&hellip;<\/p>\n","protected":false},"author":22,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-41","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/pages\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":24,"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/pages\/41\/revisions"}],"predecessor-version":[{"id":184,"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/pages\/41\/revisions\/184"}],"wp:attachment":[{"href":"https:\/\/ics.science.upjs.sk\/ano\/wp-json\/wp\/v2\/media?parent=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}