A picture is worth 1,000 words, and being able to work with images from your code can be worth billions (if you ask the engineers at Instagram). Work with image data is a skill that has become increasingly valuable as more of the world has access to a camera in their pocket. Images are data just like everything else that we have access to on our computers, and with `scikit-image`, we’re able to manipulate and analyze this data from our Python code. In this Hands-On Lab, we’ll go through the process of reading in an existing image and making modifications to it programmatically.
_Warning:_ This is a lab designed as part of a professional level course and is difficult. The lab asks you to accomplish something using exact methods and functionality of the `scikit-image` library that might not have been covered in lessons.
To feel comfortable completing this lab, you’ll want to know how to do the following:
– Use `scikit-image`. Watch the “Using SciKit-image” lessons from the [Using Python’s Math, Science, and Engineering Libraries](https://linuxacademy.com/cp/modules/view/id/621) course.
– Comfortability reading the [scikit-image documentation](https://scikit-image.org/docs/stable/) to find new functions and methods to use to accomplish your goal.
Successfully complete this lab by achieving the following learning objectives:
- Install scikit-image
Before we can edit images we’ll need to install
- Load the `highrise.jpg` Image into Memory.
To test the image changes that we’d like to automate, we’re going to work with a local image called
highrise.jpg. This can be found at
- Create a Black and White Version of `highrise.jpg`.
The first modification we’d like to automate is the conversion of an image from being a colored/RGB image to being a black and white or grayscale image. This is a common task, and we can leverage code from within the
skimage.colorsmodule to do nearly all of the work.
- Create a Copy of `highrise.jpg` with a Circular Mask.
Adding a mask to our image is a much more complicated task that requires us to index and slice the array that is backing our image’s data. To create a copy of the
highriseimage, we can use the
copymethod on our existing image object. To do the actual masking, it is worth looking at the code from this example in the