Introductory image processing and analysis as a Jupyterlab book.
Imaging is everywhere! In this text, we will cover broadly the acquisition, processing, and analysis of digital images, covering topics ranging from the human visual system, to image and video compression algorithms, to pattern recognition and machine learning within the context of automatic image understanding. Best of all, for the sake of access, immediacy, and usability, all content and code examples are in the form of interactive Jupyterlab notebooks, including integrated activities!
With the advent of IDE-integrated LLM copilots, any of the integrated activities or playpen notebooks are trivial to complete. That is, your completion of them reflect almost nothing about your understanding of the material. If you’re in class using this textbook resource, you can be expected to have to explain your work in non-augmented coding interviews throughout the course, which will comprise much of your grade. These integrated activities are to help guide your learning, not add to your instructor’s menial labor.
This text is tested on several platforms, but principally Visual Studio Code linked to a locally-run conda environment for package management.
$ conda env create -f env_dip26.yml
Alternatively you could work with this textbook through the cloud. Though there’s a bit of additional hassle getting this textbook working in Colab, the payoff is that you can link to your private fork of this project to save your work, without ever having to install a local environment. Additionally, some included notebooks use PyTorch or xgboost or otherwise rely on a cuda-capable graphics card for optimal execution, which you may not have on your local machine (or which can be an additional hassle to get working).
When executing in Colab, to every notebook that begins with %matplotlib widget you should:
!pip install ipympl. This will install ipympl in your Colab session, for producing interactive plots.from google.colab import output
output.enable_custom_widget_manager()