Python 如何仅使用NumPy和PIL对.jpg图像应用过滤器
我正在尝试将以下模糊过滤器Python 如何仅使用NumPy和PIL对.jpg图像应用过滤器,python,numpy,python-imaging-library,convolution,Python,Numpy,Python Imaging Library,Convolution,我正在尝试将以下模糊过滤器np.array([[1,1,1],[1,1,1],[1,1,1])/9应用于.jpg图像,但是,该图像显示为全黑色或具有奇怪的颜色 我不明白我做错了什么,因为我应用了灰度过滤器,它工作了。过程如下: from PIL import Image from numpy import asarray image = Image.open('sample.jpg') data = asarray(image) gray = np.dot(data, [0.3,0.59,
np.array([[1,1,1],[1,1,1],[1,1,1])/9
应用于.jpg图像,但是,该图像显示为全黑色或具有奇怪的颜色
我不明白我做错了什么,因为我应用了灰度过滤器,它工作了。过程如下:
from PIL import Image
from numpy import asarray
image = Image.open('sample.jpg')
data = asarray(image)
gray = np.dot(data, [0.3,0.59,0.11])
gray = gray.astype(np.uint8)
img = Image.fromarray(gray)
img.save('sample.png')
为什么它不能与其他过滤器一起工作?提前感谢应用过滤器会使图像值浮动(小数),但随后会将图像强制转换为无符号8位整数(
gray.astype(np.uint8)
)。这将把所有小数截断为整数