[[https://fel.cvut.cz/cz/education/rozvrhy-ng.B221/public/html/predmety/46/84/p4684806.html|Schedule BE4M33DZO]] [[https://cw.felk.cvut.cz/upload/|Upload system]] [[https://cw.felk.cvut.cz/forum/forum-1801.html|Discussion forum]] ====== BE4M33DZO - Digital Image ====== ===== Course topics ===== This course presents an overview of basic methods for digital image processing. It deals with practical techniques that have an interesting theoretical basis but are not difficult to implement. Seemingly abstract concepts from mathematical analysis, probability theory, or optimization come to life through visually engaging applications. The course focuses on fundamental principles (signal sampling and reconstruction, monadic operations, histogram, Fourier transform, convolution, linear and non-linear filtering) and more advanced editing techniques, including image stitching, deformation, registration, and segmentation. Students will practice the selected topics through six implementation tasks, which will help them learn the theoretical knowledge from the lectures and use it to solve practical problems. ===== Prerequisites ===== Students are expected to know topics from calculus, linear algebra, statistics and probability to the extent taught at CTU in Prague, FEE. Basic programming skills are also expected, especially in [[https://www.mathworks.com/products/matlab.html|MATLAB]]. ===== Lectures ===== Lecturer: **[[https://dcgi.fel.cvut.cz/home/sykorad/|prof. Ing. Daniel Sýkora, Ph.D.]]** (CTU in Prague, FEE, Department of Computer Graphics and Interaction, Room: KN:E-422) Place and Time: **Wednesday 09:15am-10:45am**, Lecture Hall **KN:E-301** Extent: **2 hours** weekly ^ Week ^ Date ^ Topics ^ Teaching Materials ^ | 1st | 27.09.2023 | **Monadic Operations** - digital image, histogram, change of brightness and contrast, thresholding, negative, quantization, gamma correction, histogram equalization and mapping | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l01.pdf|slides]] / video: [[https://youtu.be/7E83-R6Hcak| CZ]], [[https://youtu.be/RdZOJWowY0Q|EN]] | | 2nd | 04.10.2023 | **Lecture cancelled due to illness** | | | 3rd | 11.10.2023 | **Fourier Transform** - Fourier transform in 1D and 2D, basis functions, time and frequency domain, amplitude and phase, discrete Fourier transform, fast Fourier transform, sampling theorem | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l02.pdf|slides]] / video: [[https://youtu.be/SAlWMzuDxI0|CZ]], [[https://youtu.be/FaKTCyXp9kc|EN]] | | 4th | 18.10.2023 | **Convolution** - convolution in 1D and 2D, fast computation using separable kernels, mip-mapping, integral image and Fourier transform | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l03.pdf|slides]] / video: [[https://youtu.be/p38h4QIXwrc|CZ]], [[https://youtu.be/qVaRvLn8gbA|EN]] ([[http://dl.acm.org/ft_gateway.cfm?id=15921&type=pdf&CFID=85229293&CFTOKEN=92024084|1]], [[http://onlinelibrary.wiley.com/doi/10.1111/j.1467-8659.2005.00880.x/pdf|2]]) | | 5th | 25.10.2023 | **Linear Filtering** - applications of 1D and 2D convolution: noise suppression, edge detection, blur, sharpening, Wiener filter, anti-aliasing, depth of field, motion blur, light scattering, glossy reflections, soft shadows, hybrid image | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l04.pdf|slides]] / video: [[https://youtu.be/MqJlvsSZl2w|CZ]], [[https://youtu.be/Rj-UrE1FvIM|EN]] ([[http://olivalab.mit.edu/abstracts/acm_transactions_graphics.html|1]]) | | 6th | 01.11.2023 | **Non-linear Filtering** - bilateral filter, fast computation using rectangular kernels, piecewise linear approximation, and bilateral grid, applications: noise suppression maintaining sharp edges, digital makeup, abstraction, tone mapping, appearance modification, detail fusion, simulation of HDR image, material/texture change, glossiness removal, noise suppression using flash, depth map sharpening. | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l05.pdf|slides]] / video: [[https://youtu.be/-0lP30fzSfs|CZ]], [[https://youtu.be/CVB8jiDJmYk|EN]] ([[http://www.shellandslate.com/fastmedian.html|1]], [[http://www.csbio.unc.edu/mcmillan/pubs/sig05_bennett.pdf|2]], [[http://groups.csail.mit.edu/graphics/bilagrid/|3]], [[https://dl.acm.org/doi/abs/10.1145/1141911.1142018|4]], [[http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html|5]], [[http://johanneskopf.de/publications/jbu|6]], [[http://people.csail.mit.edu/fredo/PUBLI/flash/index.htm|7]], [[http://people.csail.mit.edu/fredo/PUBLI/Siggraph2002/|8]], [[http://research.microsoft.com/en-us/um/redmond/projects/flashnoflash|9]]) | | 7th | 08.11.2023 | **Image Editing** - linear and multi-band image stitching, Laplace pyramid, gradient domain editing and its applications: stitching, cloning, smoothing, fusion, context highlighting, color to gray conversion, diffusion curves | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l06.pdf|slides]] / video: [[https://youtu.be/Gjl8A_4JtBI|CZ]], [[https://youtu.be/bcpWYwCy_Js|EN]] ([[http://persci.mit.edu/pub_pdfs/spline83.pdf|1]], [[https://www.cs.jhu.edu/~misha/Fall07/Papers/Perez03.pdf|2]], [[http://graphics.cs.cmu.edu/projects/gradient-paint/|3]]) | | 8th | 15.11.2023 | **Image Deformation** - translation, rotation, scaling, skew, affine and projective transformations, backward mapping, bilinear interpolation, moving least squares, as-rigid-as-possible and as-similar-as-possible image deformation | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l07.pdf|slides]] / video: [[https://youtu.be/olaNN6OiJMk|CZ]], [[https://youtu.be/ic-gHqIkRYc|EN]] ([[http://faculty.cs.tamu.edu/schaefer/research/mls.pdf|1]]) | | 9th | 22.11.2023 | **Image Registration 1** - image similarity metrics, estimation of translation, block-matching, fast computation using early termination, multi-resolution processing, winner-take-all strategy, phase correlation, gradient descent, texture synthesis, hole filling | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l08.pdf|slides]] / video: [[https://youtu.be/hRj0WC40sqE|CZ]], [[https://youtu.be/rbQOCse-YHo|EN]] ([[http://www.ri.cmu.edu/pub_files/pub3/lucas_bruce_d_1981_2/lucas_bruce_d_1981_2.pdf|1]], [[http://www.ri.cmu.edu/pub_files/pub3/baker_simon_2004_1/baker_simon_2004_1.pdf|2]], [[https://people.cs.nctu.edu.tw/~yschen/papers/TIP01-winup.pdf|3]]) | | 10th | 29.11.2023 | **Image Registration 2** - estimation of rotation and scaling, log-polar and Fourier-Mellin transformation, generalized gradient descent (affine and projective transformation), as-similar-as-possible image registration | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l09.pdf|slides]] / video: [[https://youtu.be/hRj0WC40sqE|CZ]], [[https://youtu.be/jWwahkWZsRE|EN]] ([[https://ieeexplore.ieee.org/document/506761|1]], [[http://dcgi.felk.cvut.cz/home/sykorad/deform.html|2]], [[http://dcgi.felk.cvut.cz/home/sykorad/textoons.html|3]], [[http://graphics.cs.cmu.edu/people/efros/research/EfrosLeung.html|4]]) | | 11th | 06.12.2023 | **Image Registration 3** - keypoint extraction, Harris detector, SIFT keys and their correspondence, estimating transformation parameters using SVD and RANSAC, elimination of outliers, applications (panorama stitching, object detection, background reconstruction, augmented reality, 3D reconstruction). | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l10.pdf|slides]] / video: [[https://youtu.be/JMILEU9SOCQ|EN]] ([[https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf|1]], [[http://matthewalunbrown.com/autostitch/autostitch.html|2]], [[http://mesh.brown.edu/DGP/pdfs/Fitzgibbon-etal-98.pdf|3]]) | | 12th | 13.12.2023 | **Image Segmentation 1** - interactive image segmentation, problem formulation and its solution using maxflow algorithm, a system of linear equations and by finding shortest paths in a graph | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l11.pdf|slides]] / video: [[https://youtu.be/WAFCRMqyEeM|CZ]], [[https://youtu.be/WIdqCfXpsc8?si=pfbaQmNVZfmVrOuk|EN]] ([[http://vision.cse.psu.edu/people/chenpingY/paper/grady2006random.pdf|1]], [[http://www.csd.uwo.ca/~yuri/Papers/ijcv06.pdf|2]]) | | 13th | 20.12.2023 | **Image Segmentation 2** - basic properties of interactive image segmentation algorithms, modification and extension of optimization criteria: color model, imprecise specification of background and foreground scribbles, multiple segments, colorization, applications: alpha-channel estimation, recoloring, interactive tone mapping, painting hand-drawn images | [[https://dcgi.fel.cvut.cz/home/sykorad/dzo/slides/dzo-l12.pdf|slides]] / video: [[https://youtu.be/lS01Hu_AVgo|CZ]], [[https://youtu.be/KoNVOURzuxQ|EN]] ([[http://dcgi.felk.cvut.cz/home/sykorad/lazybrush.html|1]], [[http://grail.cs.washington.edu/projects/photomontage/|2]], [[http://www.cs.huji.ac.il/~yweiss/Colorization/|3]]) | | 14th | 10.01.2024 | **When machines replace artists?** | | ===== Labs ===== Lab Assistants: * [[https://www.ciirc.cvut.cz/people/people-list/?uid=panekvo1|Ing. Vojtěch Pánek]] (CTU in Prague, CIIRC, Room: JP:B-634a) * [[https://cmp.felk.cvut.cz/~cechj/|Ing. Jan Čech, Ph.D.]] (CTU in Prague, FEE, Department of Cybernetics, Room: KN:G-2) * [[https://www.ciirc.cvut.cz/people/people-list/?uid=skovirad|Mgr. Radoslav Škoviera, Ph.D.]] (CTU in Prague, CIIRC, Room:JP:B-611a) * [[https://dcgi.fel.cvut.cz/home/sykorad/|prof. Ing. Daniel Sýkora, Ph.D.]] (CTU in Prague, FEE, Department of Computer Graphics and Interaction, Room: KN:E-422) Place and Time: **Tuesday 6:00pm-7:30pm**, Lab Room **KN:E-132** Extent: **2 hours** weekly ^ Week ^ Date ^ Topics ^ Lab Assistant ^ | 1st | 26.09.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/0_matlab/start|Introduction to MATLAB]] | **Vojtěch Pánek**, **Jan Čech**, **Radoslav Škoviera**, **Daniel Sýkora** | | 2nd | 03.10.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/1_monadic_functions/start|Monadic Operations 1]] - brightness and contrast changes, gamma correction, histogram equalization and mapping | **Vojtěch Pánek** | | 3rd | 10.10.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/1_monadic_functions/start|Monadic Operations 2]] - submission of the 1st assignment (10 points) | **Vojtěch Pánek** | | 4th | 17.10.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/3_fourier|Fourier Transform 1]] - 2D FFT, displaying spectrum, basis functions, shift, convolution and sampling theorems | **Jan Čech** | | 5th | 24.10.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/3_fourier|Fourier Transform 2]] - submission of the 2nd assignment (10 points) | **Jan Čech** | | 6th | 31.10.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/4_filtering|Linear and Non-linear Filtering 1]] - convolution, Fourier transform, separable kernel, blurring, edge detection, deconvolution, bilateral filter | **Radoslav Škoviera** | | 7th | 07.11.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/4_filtering|Linear and Non-linear Filtering 2]] - submission of the 3rd assignment (10 points) | **Radoslav Škoviera** | | 8th | 14.11.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/5_poisson|Image Editing 1]] - gradient domain approach, solving the Poisson equation using a system of linear equations and Fourier transform, image cloning, gradient mixing | **Daniel Sýkora** | | 9th | 21.11.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/5_poisson|Image Editing 2]] - submission of the 4th assignment (10 points) | **Daniel Sýkora** | | 10th | 28.11.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/6_reg|Image Registration 1]] - estimation of translation, scale and rotation using Fourier-Mellin transform (phase correlation, log-polar transformation) | **Vojtěch Pánek** | | 11th | 05.12.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/6_reg|Image Registration 2]] - submission of the 5th assignment (10 points) | **Vojtěch Pánek** | | 12th | 12.12.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/7_segment|Image Segmentation 1]] painting hand-drawn images using maxflow algorithm | **Daniel Sýkora** | | 13th | 19.12.2023 | [[https://cw.fel.cvut.cz/wiki/courses/b4m33dzo/labs/7_segment|Image Segmentation 2]] - submission of the 6th assignment (10 points) | **Daniel Sýkora** | | 14th | 09.01.2024 | Zápočet | **Daniel Sýkora** | In total, it is possible to obtain 60 points from all assignments. In order to pass labs, student have to obtain at least 30 points. ===== Exam ===== The exam has two parts, **written** and **oral**. In the written part, the student will work through two randomly selected questions covering the subject matter within **20 minutes**: * Monadic operations (simple modifications of pixel intensity, histogram equalization and mapping) * Fourier transform (formulation, properties, sampling theorem) * Convolution (formulation, properties, speed-up methods, applications) * Image deblurring (formulation, solution using Wiener filter) * Bilateral filter (formulation, speed-up methods, applications) * Image editing in the gradient domain (formulation, solution, applications) * Image deformation (1, 2, 3, 4-point) * Image deformation (N-point, basic formulation, extensions) * Image registration (translation, solution methods) * Image registration (translation, rotation, and scaling using Fourier-Mellin) * Image registration (N-point) * Image segmentation (formulation, solution using maximum flow, applications) * Image segmentation (formulation, solution using random walker, applications) Written part is then followed by an oral examination where the examiner goes through the written preparation with the student and asks supplementary questions. The aim of these questions is to find out to what extent the student understands the material. Rather than encyclopedic knowledge, what is important is the depth of understanding of the topics discussed and the ability to implement them in practice. A maximum of 20 points can be obtained for each question. Thus, in total 40 points can be obtained for the exam. To pass the exam, a minimum of 20 points is required in total. ===== Evaluation ===== The final grade is determined by the sum of the points obtained from the labs (maximum 60) and from the exam (maximum 40): ^ Grade ^ Point range ^ Description ^ | A | 90 or more | excellent | | B | 80 to 89 | very good | | C | 70 to 79 | good | | D | 60 to 69 | satisfactory | | E | 50 to 59 | passable | | F | less than 50 | failed | ===== Literature ===== * He J., Kim C.-S., Kuo C.-C. J.: //Interactive Segmentation Techniques: Algorithms and Performance Evaluation//, Springer, 2014. * Radke R. J.: //Computer Vision for Visual Effects//, Cambridge University Press, 2012. * Goshtasby A. A.: //Image Registration: Principles, Tools and Methods//, Springer, 2012. * Paris S., Kornprobst P., Tumblin J., Durand F.: //Bilateral Filtering: Theory and Applications//, Now Publishers, 2009. * Gonzalez R. C., Woods R. E.: //Digital Image Processing (3rd Edition)//, Prentice Hall, 2008. * Šonka M., Hlaváč V., Boyle R.: //Image Processing, Analysis and Machine vision (3rd Edition)//, Thomson Learning, 2007. * Pratt W.: //Digital Image Processing (3rd Edition)//, John Wiley, 2004.