1 / 20

Python: Working with pixels

Python: Working with pixels. Reminder: Conditionals. if age < 18: showInformation (“Sorry, not allowed to vote yet.”) else : showInformation (“Please select candidate.”). Relational Operators. a > b a < b a == b (equality) a <= b (“less than or equal”)

trygg
Télécharger la présentation

Python: Working with pixels

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Python: Working with pixels

  2. Reminder: Conditionals if age < 18: showInformation(“Sorry, not allowed to vote yet.”) else: showInformation(“Please select candidate.”)

  3. Relational Operators • a > b • a < b • a == b (equality) • a <= b (“less than or equal”) • a >= b (“greater than or equal”) • != (inequality) Note: The order of signs matters: =! =< => do not work! There should be no spaces inside the relational operator, so “a < = b” also does not work (See also Appendix A.4, p362)

  4. Getting the leading zero into the filename: if n < 10: filename = “swatch0” + str(n) + “.jpg” else: filename = “swatch” + str(n) + “.jpg”

  5. Getting the leading zero into the filename: if n < 10: filename = “swatch0” + str(n) + “.jpg” else: # here we know n >= 10 filename = “swatch” + str(n) + “.jpg” What if you need more frames? if n < 10: filename = “swatch00” + str(n) + “.jpg” else: # here we know n >= 10 if n < 100: # here n is in the range of 10 … 99 filename = “swatch0” + str(n) + “.jpg” else: # here we know n >= 100 filename = “swatch” + str(n) + “.jpg”

  6. Examples from lab 11 • Be sure to review these! • Open examples.py in JES • Load • In the command area, try the functions • Here are links to small images you can use to test your program (or use your own):  eye.jpg, luca.jpg

  7. Getting at the pixels • getPixel(picture,x,y) • Gets a single pixel – returns pixel at position x,y of picture • getPixels(picture) • gets all the pixels – returns an array containing all the pixels of picture

  8. Reminder: Manipulating Pictures >>> pic1 = makeEmptyPicture(200,100) >>> seafoam = makeColor(153, 255, 204) >>> setAllPixelsToAColor(pic1, seafoam) >>> addText(pic1,30,50,“hello") >>> show(pic1) >>> pic2 = makePicture(pickAFile()) >>> show(pic2)

  9. red=108 green=86 blue=142 y = 9 Color:(108,86,142) Position: (12,9) >>> p = getPixel(picture,12,9) >>> print p Pixel, red=108 green=86 blue=142 x = 12

  10. What can we do with a pixel p? • getRed(p), • getGreen(p) • getBlue(p) • setRed(p, value) • setGreen(p, value) • setBlue(p, value) functions that take a pixel (p) as input and return a value between 0 and 255 functions that set the value of pixel (p) to a given value between 0 and 255

  11. We can also get, set, and modify Colors • getColor(p) takes a pixel as input and returns a Color object with the color at that pixel • setColor(p, c) sets the color of pixel (p) as input and a color (c), then sets the pixel to that color. • We also have functions that can makeLighter(c) and makeDarker(c) an input color • Last time we saw that we can also create colors: • makeColor(r,g,b) takes red, green, and blue values (in that order) between 0 and 255, and returns a Color object • pickAColor() lets you use a color chooser and returns the chosen color

  12. red=108 green=86 blue=142 y = 9 Color:(108,86,142) Position: (12,9) >>> pixel=getPixel(picture,12,9) >>> print pixel Pixel, red=108 green=86 blue=142 >>> value = getRed(pixel) >>> setRed (pixel, value+50) >>> setGreen(pixel, 0) >>> setBlue(pixel, getBlue(pixel)/2) x = 12

  13. red=108 red=158 green=86 Green=0 blue=142 Blue=121 y = 9 y = 9 Color:(108,86,142) Position: (12,9) Color:(158,0,121) Position: (12,9) >>> pixel=getPixel(picture,12,9) >>> print pixel Pixel, red=108 green=86 blue=142 >>> value = getRed(pixel) >>> setRed (pixel, value+50) >>> setGreen(pixel, 0) >>> setBlue(pixel, getBlue(pixel)/2) x = 12

  14. red=108 green=86 blue=142 y = 9 Color:(108,86,142) Position: (12,9) >>> pixel=getPixel(picture,12,9) >>> print pixel Pixel, red=108 green=86 blue=142 >>> redValue = getRed(pixel) >>> greenValue = getGreen(pixel) >>> blueValue = getBlue(pixel) >>> newColor = makeColor(redValue+50, 0, getBlue(pixel)/2) >>> setColor(pixel, newColor) x = 12

  15. red=158 Green=0 Blue=121 y = 9 Color:(158,0,121) Position: (12,9) >>> pixel=getPixel(picture,12,9) >>> print pixel Pixel, red=108 green=86 blue=142 >>> redValue = getRed(pixel) >>> greenValue = getGreen(pixel) >>> blueValue = getBlue(pixel) >>> newColor = makeColor(redValue+50, 0, getBlue(pixel)/2) >>> setColor(pixel, newColor) x = 12

  16. Repeating an action for all the pixels in a picture Example: for p ingetPixels(picture):    value = getRed(p)setRed(p, value*0.5)

  17. Repeating an action for all the pixels in a picturedecreaseRed() Example: def decreaseRed(picture): for p ingetPixels(picture):    value = getRed(p)setRed(p, value*0.5)

  18. More examples: More examples (link)   - you can copy and paste these to save time • decreaseGreen() • decreaseBlue() • clearBlue() • lighten() • darken() • negative() • grayScale()

  19. “Posterize” function • For each pixel, if red<128, we set red=0, otherwise we set red=255 • Similarly for green, blue

  20. Assignment: Create a python function for each of the following: • Decrease red by 20% • Decrease green by 20% • Decrease blue by 20% • Increase red by 20%, if possible (i.e., if it does not exceed 255) • Similarly for increasing blue and green • “Posterize” • Think of another way to change an image and implement a function to do that

More Related