Искажение изображения после преобразования изображения Numpy в PIL - PullRequest
0 голосов
/ 04 декабря 2018

Я хочу преобразовать некоторые Numpy в Image, поэтому я использовал Image в PIL

from PIL import Image
im1 = Image.fromarray(np.uint8(X1)) # X1 dtype uint8, scale 0~255 image
im1.save("img.png")

im2= Image.fromarray(np.uint8(X2*255))   #X2 dtype uint16, sacke 0~1 mask ,so  X2*255
im2.save("mask.png")

X1, X2 - массивы Numpy.Затем произошло нечто запутанное.Некоторые изображения выглядят хорошо, но другие искажают.

enter image description here enter image description here

Первое - искажение, второе -нормальный.

1 Ответ

0 голосов
/ 09 апреля 2019

Отредактировано после прочтения @ Mark Setchell комментарий: поскольку PNG не искажает значения, я думаю, они используют сжатие JPG.Если вы хотите, чтобы ваше изображение было таким, попробуйте следующее:

import cv2 

cv2.imwrite("img.png", img)

Здесь - документация.

...