Лишь очень немногие форматы изображений действительно поддерживают линейный RGB. PNG можно, но не JPG. Вы можете сказать, что если значение гаммы равно 1, оно линейно. Вы можете обрабатывать в линейном цветовом пространстве с помощью ImageMagick, но при сохранении в JPG могут отображаться правильные линейные значения пикселей, но метаданные JPG не сохраняют тот факт, что это линейный RGB. Вы можете сказать, были ли данные пикселей изменены на линейные, если изображение темнее. Вы можете назначить линейный профиль для JPG, но я не уверен, где вы его найдете. Обратите внимание, что в очень старой версии ImageMagick цветовое пространство RGB фактически создавало sRGB и наоборот.
Например, ваша команда не вносит изменений, поскольку JPG на самом деле не поддерживает линейный RGB.
Вход:
![введите здесь описание изображения](https://i.stack.imgur.com/NoE0Q.jpg)
convert logo.jpg -colorspace RGB logoRGB.jpg
![введите здесь описание изображения](https://i.stack.imgur.com/ISPe3.jpg)
Но PNG делает:
convert logo.jpg -colorspace RGB logoRGB.png
![введите здесь описание изображения](https://i.stack.imgur.com/MqxzZ.png)
Colorspace: RGB
Gamma: 1
Чтобы принудительно преобразовать в линейный RGB в JPG, вы можете сделать следующее, чтобы сделать пиксельные данные линейными. Но метаданные по-прежнему будут показывать нелинейный sRGB, гамма=0,4545.
convert logo.jpg -colorspace RGB -set colorspace sRGB logoRGB2.jpg
![введите здесь описание изображения](https://i.stack.imgur.com/T5vQ6.jpg)
Colorspace: sRGB
Gamma: 0.454545
РЕДАКТИРОВАТЬ: Следующая ссылка может быть полезна, если вам нужен линейный профиль RGB. См. http://fnordware.blogspot.com/2008/05/making-linear-icc-profile.html
person
fmw42
schedule
18.05.2018
convert iPhonePic.jpg -colorspace RGB result.png
и загрузили его в OpenCV, у вас должно получиться лучше. - person Mark Setchell   schedule 18.05.2018