Скачиваний:
0
Добавлен:
13.05.2026
Размер:
3.25 Кб
Скачать
import os
clear = lambda: os.system('cls')
clear()
import skimage
import numpy as np
import matplotlib.pyplot as plt

#Загрузка изображения
img = skimage.io.imread('image.jpg')
#img = skimage.io.imread('The_Magical_Kittencorn.jpg')
#Преобразование изображения в массив
picture = np.array(img)

#1. Вывод размера исходного изображения на экран
print(f'Resolution of original image is: {len(picture[0])}X{len(picture)} pixels.')

#2. Вывод исходного изображения на экран
plt.figure(1)
plt.imshow(img)

#3. Создание негативного изображения
picture_negative = np.copy(picture)
for i in range(0, len(picture_negative)):
for j in range(0, len(picture_negative[i])):
for k in range(0,len(picture_negative[i][j])):
picture_negative[i][j][k] = (255 - picture_negative[i][j][k])
plt.figure(2)
plt.imshow(picture_negative)

#4. Создание копии части изображения
#wanted_part = 7 #желаемый квадрат изображения
number_width_parts = 6 #количество квадратов по ширине
number_height_parts = 5 #количество квадратов по высоте
#number_c_width_parts = (number_width_parts - 2) #количество центральных частей по ширине
#number_c_height_parts = (number_height_parts - 2) #количество центральных частей по высоте
width_part = int(len(picture[0])/number_width_parts) #ширина одного квадрата в пикселях
height_part = int(len(picture)/number_height_parts) #высота одного квадрата в пикселях
#Вычисление начала и конца кропа изображения
start_w = 4*width_part
stop_w = 5*width_part
start_h = 2*height_part
stop_h = 3*height_part
#создание кропа изображения по необходимомму квадрату
picture_crop = np.zeros(int(height_part)*int(width_part)*int(len(picture[0][0])), dtype=np.int32)
picture_crop.shape = (int(height_part),int(width_part), int(len(picture[0][0])))
for i in range(start_h, stop_h):
for j in range(start_w, stop_w):
for k in range(0,3):
picture_crop[i-start_h][j-start_w][k] += int(picture[i][j][k])
plt.figure(3)
plt.imshow(picture_crop)

#5. Вывод на экран чёрно-белго изображения по синему каналу
picture_blue = np.copy(picture)
for i in range(0, len(picture_blue)):
for j in range(0, len(picture_blue[i])):
for k in range(0,3):
picture_blue[i][j][k] = picture_blue[i][j][2]
plt.figure(4)
plt.imshow(picture_blue)

#6. Создание копии изображения с чёрными пиксилями
picture_black = np.copy(picture)
for i in range(0, len(picture_black)):
for j in range(0, len(picture_black[i])):
if (picture_black[i][j][0] > picture_black[i][j][1] and picture_black[i][j][0] > picture_black[i][j][2]) == False:
for k in range(0,3):
picture_black[i][j][k] = 0
plt.figure(5)
plt.imshow(picture_black)

plt.show()
Соседние файлы в папке лабы