import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
img = mpimg.imread('images/parrot.png')
plt.imshow(img)
from PIL import Image
from matplotlib.pyplot import imshow
%matplotlib inline
img_gray = Image.open("images/lena_gray.gif")
print(img_gray.width, img_gray.height, img_gray.mode, img_gray.format, type(img_gray))
imshow(img_gray)
pixels = list(img_gray.getdata())
len(pixels)
img_lena = Image.open("images/lena.jpg").convert('RGB')
print(img_lena.width, img_lena.height, img_lena.mode, img_lena.format, type(img_lena))
imshow(img_lena)
width, height = img_lena.size
print(width, height)
Renkli görüntünün 3 kanal için pixel değerlerini okuma
w,h = img_lena.size
for i in range(w):
for j in range(h):
r,g,b = img_lena.getpixel((i,j))
print("({0},{1}) : r:{2},g:{3},b:{4}".format(i,j, r,g,b))
img_new = np.zeros([220,220,3],dtype=np.uint8)
img_new.fill(0)
img_new
imshow(img_new)
img_new.shape
Pixel değerlerini değiştirme
import ipywidgets as widgets
from ipywidgets import interact, interact_manual
@interact
def change_color_img(column='colors', r=(0,255), g=(0,255), b=(0,255)):
w = img_new.shape[0]
h = img_new.shape[1]
c = img_new.shape[2]
for i in range(w):
for j in range(h):
img_new[i][j][0] = r
img_new[i][j][1] = g
img_new[i][j][2] = b
imshow(img_new)
img = Image.open('images/lena.jpg')
img_array = np.array(img)
imshow(img_array)
img_negative = np.zeros([220,220,3],dtype=np.uint8)
for i in range(img_array.shape[0]):
for j in range(img_array.shape[1]):
r,g,b = img_array[i][j]
img_negative[i][j][0] = 255-r
img_negative[i][j][1] = 255-g
img_negative[i][j][2] = 255-b
imshow(img_negative)
img_lena_negative = Image.fromarray(img_negative)
img_lena_negative.save('images/lena_negative.png')
Daha fazla interaktif örnek için: http://setosa.io/ev/image-kernels/