Небольшое изменение цвета во время сжатия JPEG - PullRequest
0 голосов
/ 25 июня 2019

Похоже, что библиотека по умолчанию в Ubuntu немного меняет цвета во время сжатия.Я пытался установить качество и выборку, но я не вижу улучшений, кто-нибудь когда-либо сталкивался с подобной проблемой?

subsampling = 0, качество = 100

#CORRECT COLORS FROM NPARRAY
cv2.imshow("Object cam:{}".format(self.camera_id), self.out)

print(self.out.item(1,1,0)) # B 
print(self.out.item(1,1,1)) # G
print(self.out.item(1,1,2)) # R

self.out=cv2.cvtColor(self.out,  cv2.COLOR_BGR2RGB)

#from PIL import Image
im = Image.fromarray(self.out)
r, g, b = im.getpixel((1, 1))
## just printing pixel and they are matching  
print(r, g, b) 
## WRONG COLORS
im.save(self.out_ramdisk_img,format='JPEG', subsampling=0, quality=100)

enter image description here

Изображение JPEG должно иметь те же цвета, что и в imshow, но оно немного более фиолетовое.

1 Ответ

1 голос
/ 25 июня 2019

Это естественный результат сжатия JPEG. JPEG использует арифметику с плавающей запятой для вычисления значений целых пикселей. Это происходит в несколько этапов сжатия JPEG. Таким образом, ожидаются небольшие изменения значения пикселя.

Когда у вас есть общие изменения цвета, они обычно являются входными значениями цвета результата, которые находятся за пределами гаммы цветового пространства YCbCr. Такие значения фиксируются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...