Формула преобразования изображений

У меня есть изображение .png, созданное из некоторых чисел в градациях серого с помощью инструмента Matlab imagesc с использованием стандартной карты цветов. По какой-то причине я не могу восстановить необработанные данные. Есть ли способ восстановить необработанные данные из образа? Я пробовал rgb2gray, который более-менее работал, но если я переподключаю новое изображение в imagesc, это дает немного другой результат. Кроме того, пиксель с наибольшей интенсивностью отличается на обоих изображениях.

Итак, чтобы уточнить: я хотел бы знать, как Matlab применяет цветовую карту rgb к значениям оттенков серого при использовании стандартной цветовой карты.

Это изображение, о котором мы говорим: https://imgur.com/qFsGrWw.png

Спасибо!


person FMu    schedule 17.01.2017    source источник
comment
Если ваши данные double, то это невозможно, поскольку PNG отбросит ваши 64-битные данные с плавающей запятой в пользу 8-битного целочисленного типа данных. Также rgb2gray не выполняет обратное сопоставление цветовой карты, а просто преобразует ее в оттенки серого. Если вы расскажете нам, чего вы на самом деле пытаетесь достичь, возможно, мы сможем оказать дополнительную помощь.   -  person Suever    schedule 17.01.2017
comment
Мои данные uint8. И я пытаюсь отменить изображения со стандартной картой цветов (я знаю интенсивность самого яркого пикселя, поэтому я могу преобразовать все обратно), потому что в противном случае у меня больше нет доступа к необработанным данным. Так что в основном мне нужна яркость каждого пикселя изображения, которое я указал в вопросе.   -  person FMu    schedule 17.01.2017
comment
Если вы хотите сохранить свои данные в неприкосновенности, сохраните их в файле .mat, а не пытайтесь сделать снимок экрана и сохранить его в формате RGB png.   -  person Suever    schedule 17.01.2017
comment
Я знаю, но это просто невозможно, так как это сделал не я, а кто-то другой.   -  person FMu    schedule 17.01.2017


Ответы (1)


Нет, вы не получите правильных данных, если используете стандартную карту цветов или jet.

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

Короче:

  1. Попытка получить данные из представления данных (т.е. графиков) - ужасная идея.

  2. jet - ужасная идея

person Ander Biguri    schedule 17.01.2017