CSCI 150: Prelab 4 Answer Key
Images and Functions
In this optional prelab (you do not have to turn this in, it is just an additional resource), we will formulate some of the ideas necessary to complete Lab 4.
Function Practice
Q1. What is the output of the following program?
Answer:
Answer:
def main() :
blarg(5)
blorf(3)
def blarg(x) :
print(x*x)
print(x)
def blorf(y) :
blarg(y+1)
print(y)
blarg(y-1)
main()
Answer:
25
5
16
4
3
4
2
Q2. What is the output of the following program?
def main() :
x = 2, y = 7
print(x, y, end="")
x = blunk(x, y)
print(x, y, end="")
def blunk(y, x) :
print(x, y, end="")
y = y * y
x = x//2
print(x, y, end="")
return x*y
main()
Answer:
2 77 23 412 7
Image Manipulation
In this lab, you will create a nifty program that reads in an image and does a sequence of modifications to that image, as specified by the user. Things like negating the image, blurring it, changing the contrast, etc.
Describe the Problem: |
Your program should prompt the user to enter the filename of an image to edit. It should then repeatedly prompt them for filters to apply, and show the cumulative effect of these filters on the specified image. | ||||||||||||||||||||||||||||
Understand the Problem: |
![]() Consider the image of crayons above. There are numerous transformations we might apply to this image. For the lab, you'll be creating a program capable of the following operations:
|
||||||||||||||||||||||||||||
Design an Algorithm: |
You will want to write pseudocode before you start writing functions. Details for some of these operations are given below.
|
Hints:
- For some of these operations, you may want to create a new image rather than by simply modifying the existing image. You may assume you can generate a copy of an image.
- You can not change the position of a pixel. You can, however, read the r, g and b values for any pixel, and you can set the r, g and b values of any pixel.
Ex. Remove all red from an image.
Sample answer: loop over x values from 0 to W - 1 inclusive (You can assume W is the width) loop over y values from 0 to H - 1 inclusive (You can assume H is the height) change the red value of the pixel at (x,y) to 0Q3. Negate the image.
Answer: loop over x values from 0 to W - 1 inclusive (You can assume W is the width) loop over y values from 0 to H - 1 inclusive (You can assume H is the height) get the red, green, and blue values of the pixel at (x, y) as r, g, b change the red, green, and blue values of the pixel at (x, y) to 255 - r, 255 - g, and 255 - bQ4. Convert the image to grayscale.
Answer: loop over x values from 0 to W - 1 inclusive (You can assume W is the width) loop over y values from 0 to H - 1 inclusive (You can assume H is the height) get the red, green, and blue values of the pixel at (x, y) as r, g, b change the red, green, and blue values of the pixel at (x, y) to the average of r, g, and bQ5. Scroll the image to the right by d pixels.
Answer: make a copy of the picture so we do not lose any information when we copy pixels to a new location loop over x values from 0 to W - 1 inclusive (You can assume W is the width) loop over y values from 0 to H - 1 inclusive (You can assume H is the height) find the new x value where you want to copy the pixel at (x, y) to: new_x = (x + d) % W get the red, green, and blue values of the pixel at (x, y) in the copy of the picture as r, g, b change the red, green, and blue values of the pixel at (new_x, y) in the original picture to r, g, b
Honor Code
If you followed the Honor Code in this assignment, write the following sentence attesting to the fact at the top of your homework.
I affirm that I have adhered to the Honor Code in this assignment.