Difference between revisions of "ECE 280/Imaging Labs"
Line 28: | Line 28: | ||
* Binary images only have two values (0/1, False/True, Off/On). They store the least amount of information but can certainly still be useful. | * Binary images only have two values (0/1, False/True, Off/On). They store the least amount of information but can certainly still be useful. | ||
* Indexed images are basically electronic "paint by numbers." Each pixel is given an integer value, and that integer value refers to a row in a lookup table that contains the amount of red, green, and blue with which to color that pixel. In the example, anything mapped to a 4 would be pure blue since the fourth row of the color map yields [0, 0, 1]. | * Indexed images are basically electronic "paint by numbers." Each pixel is given an integer value, and that integer value refers to a row in a lookup table that contains the amount of red, green, and blue with which to color that pixel. In the example, anything mapped to a 4 would be pure blue since the fourth row of the color map yields [0, 0, 1]. | ||
− | * Grayscale images will have a range of brightness values - either a float in the range of 0 to 1 or an unsigned integer in the range of 0 to 255. | + | * Grayscale images will have a range of brightness values - typically either a float in the range of 0 to 1 or an 8-bit unsigned integer in the range of 0 to 255, though 16-bit signed or unsigned integers can also be used. |
+ | * Truecolor images will have three value for each pixel representing the amount for red, green, and blue. These ranges will also generally either be a float between 0 and 1 or an 8-bit unsigned integer between 0 and 255. These images therefore take up 3 times the amount of memory as a similarly-sized grayscale image and 24 times as much memory as a similarly-sized binary image! 16-bit unsigned integers can also be used. | ||
+ | You can certainly read about the other image types but we will not be using them in this lab. |
Revision as of 04:10, 12 August 2020
This page serves as a supplement to the Digital Image Processing Labs for ECE 280. It has been updated for the Fall 2020 semester, including providing instructions for working on labs remotely.
Contents
Running MATLAB
MATLAB can be run remotely on the Duke Linux system, but it will generally be more convenient for you to install it on your own computer.
Installing MATLAB
MATLAB is free for Duke students. Follow the instructions in the Installation section of the EGRWiki page on MATLAB. Be sure to select the appropriate PRODUCTS when asked.
Using MATLAB Remotely
If you do not want to install MATLAB, you can use Duke's installation. You will first need to connect to the Duke Linux system using either MobaXterm (Windows) or XQuartz (macOS), making sure you correctly issues the ssh command to get graphics. Then simply type matlab &
to start MATLAB. More information is available at the page How To Get Work Done
Image Processing Toolbox
The following will take you through several examples from the MATLAB Image Processing Toolbox. Along the way you will learn about different types if images, how they are stored and saved, and what you can do with them in MATLAB. Open the Add-On Explorer, search for Image Processing, and complete the following:
Overview Tab
Read the overview. Several of the terms may be meaningless to you at the moment.
Learn More Button
On the right of the Explorer screen, there is a Learn More box; click that to go to the Image Processing Toolbox web page. Watch the video (~2 minutes). Once that is done, you can close that page and go back to the Add=On Explorer.
Open Documentation Button
Also on the right of the Explorer screen, there is an Open Documentation button; click that to open the toolbox documentation. You will be going through several sections of this documentation.
Get Started with the Image Processing Toolbox
In the Tutorials section of this page, go through Basic Image Import, Processing, and Export. By the end of it, you will have used several basic commands: imread, imshow, whos, figure, imhist, histeq, imwrite, and iminfo. You will see more details about these as you go along. Once done, go back to the Get Started page.
Next, in the About Image Processing section, go through Image Types in the Toolbox. There are 7 different types of images listed but we will only concern ourselves with the first four: binary, indexed, grayscale, and truecolor. Read through the descriptions of each along with the following accompaniment:
- Binary images only have two values (0/1, False/True, Off/On). They store the least amount of information but can certainly still be useful.
- Indexed images are basically electronic "paint by numbers." Each pixel is given an integer value, and that integer value refers to a row in a lookup table that contains the amount of red, green, and blue with which to color that pixel. In the example, anything mapped to a 4 would be pure blue since the fourth row of the color map yields [0, 0, 1].
- Grayscale images will have a range of brightness values - typically either a float in the range of 0 to 1 or an 8-bit unsigned integer in the range of 0 to 255, though 16-bit signed or unsigned integers can also be used.
- Truecolor images will have three value for each pixel representing the amount for red, green, and blue. These ranges will also generally either be a float between 0 and 1 or an 8-bit unsigned integer between 0 and 255. These images therefore take up 3 times the amount of memory as a similarly-sized grayscale image and 24 times as much memory as a similarly-sized binary image! 16-bit unsigned integers can also be used.
You can certainly read about the other image types but we will not be using them in this lab.