import cv2 from PIL import Image import numpy as np #Wyświetlanie grafiki def show_image(img): cv2.imshow("image", img) cv2.waitKey(0) cv2.destroyAllWindows() #Wczytanie grafiki z pliku def read_image_cv(path): img = cv2.imread(path, cv2.IMREAD_COLOR) print(img) print(img.shape) print(type(img)) show_image(img) return img ''' #Wczytywanie obrazów za pomocą biblioteki Pillow def read_image_PIL(path): im = Image.open("image.jpg") try: print(im) except: print(type(im)) im.show() return im read_image_PIL("image.jpg") ''' image = read_image_cv("image.jpg") def reverse_image(img): new_img = [] for row in range(img.shape[0]): new_row = [] for column in range(img.shape[1]): new_row.append(img[-1-row][column]) new_img.append(new_row) return np.array(new_img) show_image(reverse_image(image)) def reverse_image_short(img): img_reverse = img[::-1] return img_reverse show_image(reverse_image_short(image)) show_image(cv2.flip(image, 0) ) def gray_scale(img): for row in range(img.shape[0]): for column in range(img.shape[1]): gray = int(sum(img[row][column])/3) img[row][column][0] = gray img[row][column][1] = gray img[row][column][2] = gray return np.array(img) show_image(gray_scale(image) ) show_image(cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) ) def sepia(img): for row in range(img.shape[0]): for column in range(img.shape[1]): B = img[row][column][0] G = img[row][column][1] R = img[row][column][2] img[row][column][2] = min(255, (0.393*R + 0.769*G + 0.189*B)) img[row][column][1] = min(255, (0.349*R + 0.686*G + 0.168*B)) img[row][column][0] = min(255, (0.272*R + 0.534*G + 0.131*B)) return np.array(img, dtype= np.uint8) show_image(sepia(image)) def change_colors(img,R_scale,G_scale,B_scale): for row in range(img.shape[0]): for column in range(img.shape[1]): img[row][column][2] = img[row][column][2] * R_scale img[row][column][1] = img[row][column][1] * G_scale img[row][column][0] = img[row][column][0] * B_scale return np.array(img, dtype= np.uint8) #show_image(change_colors(image,1.4,0,0)) def tresholding(img,treshold): for row in range(img.shape[0]): for column in range(img.shape[1]): gray = int(sum(img[row][column])/3) if gray <= treshold: img[row][column] = [255,255,255] else: img[row][column] = [0,0,0] return np.array(img) show_image(tresholding(image,200))