A Practical Digital Image Processing Course with morph.py
Resumo
Teaching Digital Imaging Processing (DIP) is challenging, primarily because of its mathematical and algorithms complexities. Despite the recent growth in the field, comprehensive resources are lacking to support DIP education. To address this gap, this paper introduces a practical course utilizing a Python library named morph.py designed for beginners and accessible on Google Colab. This interactive course employs illustrative examples and hands-on exercises to facilitate the learning of fundamental DIP concepts and operators. It begins with basic concepts (e.g., image representation) and progresses to more advanced topics, including image transformations and feature extraction. We conducted an exploratory case study in one group (N=15) and gathered their perception through a voluntary survey. Our quantitative analysis strongly supports our teaching method's effectiveness based on the morph.py library, which addresses the difficulties of teaching DIP to beginners.
Referências
Olivier Cuisenaire. 1999. Distance transformations: fast algorithms and applications to medical image processing. Technical Report.
Edward R. Dougherty and Roberto de Alencar Lotufo. 2003. Hands-on morphological image processing. Vol. 59. SPIE press.
Rafael C Gonzalez and Richard C Woods. 2009. Processamento digital de imagens. Pearson Educación.
Muhammad Hussain. 2023. YOLO-v1 to YOLO-v8, the Rise of YOLO and Its Complementary Nature toward Digital Manufacturing and Industrial Defect Detection. Machines 11, 7, 677.
Donald Ervin Knuth. 1984. Literate programming. Comput. J. 27, 2, 97–111.
Konstantinos Konstantinides and John R Rasure. 1994. The Khoros software development environment for image and signal processing. IEEE Transactions on Image Processing 3, 3, 243–252.
Andrés Fernando Jiménez López, Marla Carolina Prieto Pelayo, and Ángela Ramírez Forero. 2016. Teaching image processing in engineering using python. IEEE Revista Iberoamericana de Tecnologias del Aprendizaje 11, 3, 129– 136.
Roberto de Alencar Lotufo. 2017. Set of functions used in the course IA898 - Digital Image Processing. [link]. GitHub repository.
Roberto de Alencar Lotufo. 2019. Set of functions used in the course IA870 - Mathematical Morphology. [link]. GitHub repository.
Roberto de Alencar Lotufo, Francisco de Assis Zampirolli, Roberto Hirata Junior, and Junior Barrera. 1997. MMachLib functions and MMach operators. In Brazilian Workshop’97 on Mathematical Morphology.
Rubens C. Machado, Roberto de Alencar Lotufo, Alexandre G. Silva, and André Vital Saúde. 2003. ADESSO. Scientific Software Development Environment. Journal of Computer Science and Technology 3, 01, 1–6.
Rubens C. Machado, Leticia Rittner, and Roberto de Alencar Lotufo. 2011. Adessowiki-Collaborative platform for writing executable papers. Procedia Computer Science 4, 759–767.
MathWorks. 2024. MathWorks Image Processing Toolbox. [link]. Acessado em 8 de janeiro de 2024.
Nobuyuki Otsu. 1979. A threshold selection method from gray-level histograms. IEEE transactions on systems, man, and cybernetics 9, 1, 62–66.
Juan Carlos Rodríguez del Pino, Enrique Rubio Royo, and Zenón José Hernández Figueroa. 2010. VPL: laboratorio virtual de programación para Moodle. In Jornadas de Enseñanza Universitaria de la Informática. 429–435.
Penny M Rowe and et al. 2018. Teaching image processing in an upper level CS undergraduate class using compuational guided inquiry and polar data. Journal of computing sciences in colleges 34, 1.
Thomas P Ryan. 2013. Sample size determination and power. John Wiley & Sons.
Daniel Sage and Michael Unser. 2001. Easy Java programming for teaching image-processing. In Proceedings 2001 International Conference on Image Processing (Cat. No. 01CH37205), Vol. 3. IEEE, 298–301.
Daniel Sage and Michael Unser. 2003. Teaching image-processing programming in Java. IEEE Signal Processing Magazine 20, 6, 43–52.
Daniel Sage and Michael Unser. 2003. Teaching image-processing programming in Java. IEEE Signal Processing Magazine 20, 6, 43–52.
A.G. Silva and et al. 2003. Toolbox of image processing using the Python language. In Proc. Int. Conf. on Image Processing, Vol. 3. III–1049.
Gloria Bueno García Oscar Deniz Suarez. 2013. Learning image processing with OpenCV.
Ali Abdullah Yahya. 2019. Teaching Digital Image Processing Topics via Matlab Techniques. International Journal of Information and Education Technology 9, 10, 729–734.
Ziv Yaniv and et al. 2018. SimpleITK image-analysis notebooks: a collaborative environment for education and reproducible research. Journal of digital imaging 31, 3, 290–303.
F.A. Zampirolli, P.H.Pisani, J.M.Josko, G.Kobayashi, F.Fraga, D.Goya, and H.R. Savegnago. 2020. Parameterized and automated assessment on an introductory programming course. In Anais do XXXI SBIE. SBC, 1573–1582.
F.A. Zampirolli, Cristiane M. Sato, Heitor Rodrigues Savegnago, Valério Ramos Batista, and Guiou Kobayashi. 2021. Automated assessment of parametric programming in a large-scale course. In 2021 XVI Latin American Conference on Learning Technologies (LACLO). 357–363.
F.A. Zampirolli, F. Teubl, and V.R. Batista. 2019. Online Generator and Corrector of Parametric Questions in Hard Copy Useful for the Elaboration of Thousands of Individualized Exams.. In CSEDU. 352–359.
F. A. Zampirolli and Leonardo Filipe. 2017. A fast CUDA-based implementation for the Euclidean distance transform. In 2017 International Conference on High Performance Computing & Simulation (HPCS). IEEE, 815–818.