Commit 84d501fa authored by Gijs van der Voort's avatar Gijs van der Voort

Grijswaarde afbeelding klasse aangemaakt met de volgende features:

- RGB afbeeldingen worden omgezet naar grijswaarden
- Mogelijkheid om klasse instantie direct te indexen: image[y,x]
- Mogelijkheid om op klasse instantie te itereren: for pixel in image: ...
- Direct tonen van afbeelding: image.show()
- Croppen van afbeelding via een Rectangle(x, y, width, height)
parent c43363a7
from pylab import *
class GrayscaleImage:
def __init__(self, image_path = None, data = None):
if image_path != None:
self.data = imread(image_path)
self.convert_to_grayscale()
elif data != None:
self.data = data
def __iter__(self):
self.i_x = -1
self.i_y = 0
return self
def next(self):
self.i_x += 1
if self.i_x == self.width:
self.i_x = 0
self.i_y += 1
elif self.i_y == self.height:
raise StopIteration
else:
return self[self.i_y, self.i_x]
def __getitem__(self, position):
return self.data[position]
def convert_to_grayscale(self):
self.data = self.data.sum(axis=2) / 3
def crop(self, rectangle):
self.data = self.data[rectangle.y : rectangle.y + rectangle.height,
rectangle.x : rectangle.x + rectangle.width]
def show(self):
imshow(self.data, cmap="gray")
show()
def get_width(self):
return len(self.data[0])
def get_height(self):
return len(self.data)
width = property(get_width)
height = property(get_height)
class Rectangle:
def __init__(self, x, y, width, height):
self.x = x;
self.y = y;
self.width = width;
self.height = height;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment