Dec 03, 2024 | 315 words | 3 min read
10.2.1. Task 1#
Learning Objectives#
Compare images on a pixel-by-pixel basis.
Task Instructions#
Save the flowcharts for each of your tasks in tp2_team_teamnumber.pdf You will also need to include these flowcharts in your final report.
Write a Python function that compares two images at the pixel level to
determine if a message is encoded in one of them. The function should accept three
image filenames as inputs: the names of two input images which will be compared, and the
name of an output image which will visually indicate any differences. If the images are
not the same size or the same mode, the function should print an error message and
return False
. Otherwise, the function should create an output image that is the same
shape as the input images. The byte values in the output image should be set to 0
anywhere the input images are the same, and to 255 anywhere they are different. This
output image should then be saved to the specified file and displayed for the user.
Finally, the function should return True
if the images are identical and False
if
they differ.
In your main function, prompt the user to input names for each of the files. Then call the function you wrote to compare the two images and create the output image. Use the files provided in the Table 10.32 to test your code.
Save your program as tp2_team_1_teamnumber.py.
Image File Name |
Description |
---|---|
Original grayscale image |
|
grayscale image with message encoded |
|
Original color image |
|
Color mage with message encoded |
Sample Output#
Use the values in Table 10.33 below to test your program.
Case |
Image 1 |
Image 2 |
Output Image |
---|---|---|---|
1 |
ref_gry.png |
ref_gry.png |
diff.png |
2 |
ref_gry.png |
ref_gry_e.png |
diff.png |
3 |
ref_col.png |
ref_col_e.png |
diff.png |
4 |
ref_col.png |
ref_gry.png |
diff.png |
Ensure your program’s output matches the provided samples exactly. This includes all characters, white space, and punctuation. In the samples, user input is highlighted like this for clarity, but your program should not highlight user input in this way.
Case 1 Sample Output
$ python3 tp2_team_1_teamnumber.py Enter the path of your first image: ref_gry.png Enter the path of your second image: ref_gry.png Enter the path for the output image: diff.png The images are the same.
Case 2 Sample Output
$ python3 tp2_team_1_teamnumber.py Enter the path of your first image: ref_gry.png Enter the path of your second image: ref_gry_e.png Enter the path for the output image: diff.png The images are different.
Case 3 Sample Output
$ python3 tp2_team_1_teamnumber.py Enter the path of your first image: ref_col.png Enter the path of your second image: ref_col_e.png Enter the path for the output image: diff.png The images are different.
Case 4 Sample Output
$ python3 tp2_team_1_teamnumber.py Enter the path of your first image: ref_col.png Enter the path of your second image: ref_gry.png Enter the path for the output image: diff.png Cannot compare images in different modes (RGB and L). The images are different.