Изменение яркости изображения по строкам пропорционального распределения Гаусса

Задача заключается в изменении яркости изображения. Из 1 изображения сделать второе с помощью функции Гаусса.
input

output

Мой вариант решения:

import cv2
im=cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)
h,w = im.shape
X,Y=np.meshgrid(np.arange(w), np.arange(h))
# Gaussian parametres
x0,y0=w//2, h//2
sigma_x=1000
sigma_y=1000
A=1
gaussian=A*np.exp(-((X-x0)**2/(2*sigma_x**2)+(Y-y0)**2/(2*sigma_y**2)))
im_out=np.clip((im.astype('float64')*gaussian), 0, 255)
im_out=np.uint8(im_out)
cv2.imwrite('output.png', im_out)

Столкнулся с проблемой 'NoneType' object has no attribute 'shape' Как я понимаю проблема в указателе на файл, но программа то работает то не работает. Подскажите пожалуйста как решить проблему


Ответы (1 шт):

Автор решения: Stanislav Volodarskiy

Программа работает, когда вы запускаете её из каталога в котором есть картинка с именем input.jpg.

Программа останавливается с ошибкой если такой картинки в текущем каталоге нет.

Чтобы избавиться от ошибки, всегда перед запуском убеждайтесь, что input.jpg находится в текущем каталоге.

→ Ссылка