Bitmap/Histogram: Difference between revisions
Content added Content deleted
(Added Julia language) |
No edit summary |
||
Line 1,226: | Line 1,226: | ||
SaveImageAsPPM(image, outputFile, 1) |
SaveImageAsPPM(image, outputFile, 1) |
||
EndIf</lang> |
EndIf</lang> |
||
=={{header|Python}}== |
|||
Makes use of the Pillow library (PIL) you can install it using pip. The code is probably not the fastest or the image I used (1960x1960) is just too big. |
|||
<lang python>from PIL import Image |
|||
# Open the image |
|||
image = Image.open("lena.jpg") |
|||
# Get the width and height of the image |
|||
width, height = image.size |
|||
# Calculate the amount of pixels |
|||
amount = width * height |
|||
# Total amount of greyscale |
|||
total = 0 |
|||
# B/W image |
|||
bw_image = Image.new('L', (width, height), 0) |
|||
# Bitmap image |
|||
bm_image = Image.new('1', (width, height), 0) |
|||
for h in range(0, height): |
|||
for w in range(0, width): |
|||
r, g, b = image.getpixel((w, h)) |
|||
greyscale = int((r + g + b) / 3) |
|||
total += greyscale |
|||
bw_image.putpixel((w, h), gray_scale) |
|||
# The average greyscale |
|||
avg = total / amount |
|||
black = 0 |
|||
white = 1 |
|||
for h in range(0, height): |
|||
for w in range(0, width): |
|||
v = bw_image.getpixel((w, h)) |
|||
if v >= avg: |
|||
bm_image.putpixel((w, h), white) |
|||
else: |
|||
bm_image.putpixel((w, h), black) |
|||
bw_image.show() |
|||
bm_image.show()</lang> |
|||
=={{header|Racket}}== |
=={{header|Racket}}== |