我試圖打開(已經是灰度)圖像並將所有非黑色像素更改爲白色像素。我執行下面的代碼:Python:灰度圖像:使一切變白,除了黑色像素
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。出於某種原因,此代碼不適用於所有圖像?
舉例:下圖是輸入。
它包含了一個灰色的矩形,也有白色邊框。輸出應該是一個完整的白色圖像,但由於某種原因,輸出的是黑色圖像:
隨着它工作得非常好一些其它圖像。我做錯了什麼?我認爲在這裏浮點不應該是一個大問題,因爲這個代碼不需要很高的計算精度來工作。
非常感謝您
我沒有看到任何錯誤。我建議把這個計算分解成幾部分,並從每一部分中打印出幾個有代表性的像素。 –