Ich versuche den Bildkontrast ohne Verwendung von Python-Bibliotheken herzustellen. Persönlich finde ich es besser zu lernen, wie man programmiert, ohne die verschiedenen Bibliotheken zu benutzen, um ein besseres Verständnis zu bekommen. In meinem Fall versuche ich zu vermeiden, opencv zu verwenden, um ein Bild zu kontrastieren.Einstellen des Kontrastes eines Bildes
Das Problem, das ich habe, ist TypeError: 'int' object has no attribute '__getitem__'
. Ehrlich gesagt bin ich nicht ganz sicher, was dieser Fehler bedeutet.
import matplotlib.pylab as plt
import matplotlib.image as mpimg
import numpy as np
img = np.uint8(mpimg.imread('igloo.png'))
img = np.uint8((0.2126* img[:,:,0]) + \
np.uint8(0.7152 * img[:,:,1]) +\
np.uint8(0.0722 * img[:,:,2]))
def img_contrast(img):
for x in range(img.size[0]):
for y in range(img.size[1]):
if (x, y) > 128:
(r, g, b) = img.getpixel((x, y))
img.putpixel((x, y), (r+80, g+80, b+80))
else:
if(x, y) < 128:
(r, g, b) = img.getpixel((x, y))
img.putpixel((x, y), (r-80, g-80, b-80))
tam = img_contrast(img)
plt.imshow(tam)
'if (x, y)> 128:' Dies kann das Problem sein, wenn Sie ein Tupel mit einer Ganzzahl vergleichen. –
Von dem, was ich sagen kann, verwenden Sie bereits: 'pylab, matplotlib, numpy'. Was meinst du mit "_ohne Verwendung von Python-Bibliotheken_". – abccd
Ansonsten sollten Sie PIL oder Pillow (Python-Image-Bibliothek) auschecken. Es hat einige nützliche Funktionen – abccd