Обратите внимание на следующее изображение:
![enter image description here](https://i.stack.imgur.com/ymGGi.png)
Соблюдайте следующий код Python:
import cv2
img = cv2.imread("rainbow.png", cv2.IMREAD_COLOR)
img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # convert it to hsv
img = cv2.cvtColor(img, cv2.COLOR_HSV2BGR) # convert back to BGR
cv2.imwrite("out.png", img)
Вот изображение на выходе:
![enter image description here](https://i.stack.imgur.com/QoQ7s.png)
Если вы не можете видеть это, то здесь явно снижается визуальная точность. Для сравнения, вот оригинал рядом с выходным изображением, увеличенным вокруг желтых:
![enter image description here](https://i.stack.imgur.com/vEv1R.png)
Что здесь происходит? Есть ли способ предотвратить появление этих блочных артефактов? Мне нужно преобразовать в цветовое пространство HSL, чтобы повернуть оттенок, но я не могу этого сделать, если я собираюсь получить такие артефакты.
Как примечание, у выходного изображения нет артефактов, когда я не делаю два преобразования; сами преобразования действительно являются причиной.