我试着打开(已经是灰度级的)图像,并将所有非黑色像素更改为白色像素。我实现了以下代码:from scipy.misc import fromimage, toimage
from PIL import Image
import numpy as np
in_path = 'E:\\in.png'
out_path = 'E:\\out.png'
# Open gray-scale image
img = Image.open(in_path).convert('L')
# Just for testing: The image is saved correct
#img.save(out_path)
# Make all non-black colors white
imp_arr = fromimage(img)
imp_arr = (np.ceil(imp_arr / 255.0) * 255.0).astype(int)
# Save the image
img = toimage(imp_arr, mode='L')
img.save(out_path)
使所有像素都变白的计算非常简单,而且速度也非常快。对于我的用例来说,它的工作速度非常快,因此我使用了numpy。由于某些原因,此代码不能用于所有图像?在
例如:下面的图像是输入。在
![]()
它包含一个灰色矩形和一个白色边框。输出应为完整的白色图像,但由于某些原因,输出是黑色图像:
![]()
在其他一些图像中,效果很好。我做错了什么?我认为浮点在这里应该不是一个大问题,因为这段代码不需要很高的计算精度。在
非常感谢
|