Alex_Kuzen
@Alex_Kuzen

Почему в numpy берется только тонкая полоска изображения?

import numpy as np
from PIL import  Image


im = Image.open('IMG_7760.JPG')
a = np.asarray(im)
for bb in a:

    np.random.random((1,1,1)) * a


    im = Image.fromarray(bb)
    im.save('2222.JPG')
    print(bb)


61bdfbe3ccd3f588419884.jpeg

Берется это изображение, и переводится в матричный массив. Но при сохранении, образовывается очень тонкая полоска изображения. Как исправить ? А если я Указываю числа больше 1 в np.random.random(( 3,3,3)) выдает ошибку

Traceback (most recent call last):
File "C:\Users\AlexK\PycharmProjects\just_codding_for_self\main.py", line 10, in
np.random.random((3,3,3)) * a
ValueError: operands could not be broadcast together with shapes (3,3,3) (824,824,3)
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Погоди, а что за ересь ты вообще творишь?
im = Image.open('IMG_7760.JPG')
a = np.asarray(im) # a - трёхмерный массив numpy (высота; ширина; каналы)

for bb in a: # перебираешь элементы по первому индексу (высоте), т.е. строки изображения
    np.random.random((1,1,1)) * a #умножаешь каждый элемент (кортеж RGB) строки на одно и то же случайное число
    #и всё. Полученное произведение выбрасывается за ненадобностью. Оригинальное значение ты не заменяешь ведь.
    im = Image.fromarray(bb) #*строку* превращаешь в объект PIL.Image
    im.save('2222.JPG') #и сохраняешь этот объект в файл
    print(bb) #и выводишь на экран

Питон делает ровно то, что ты у него просишь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект
22 нояб. 2024, в 21:44
50000 руб./за проект