Задать вопрос
@JRBRO

Если число ниже, то cv2.putText красного цвета, если выше, то зеленого, как?

Есть оценка изображения, которая выводит оценку в таком стиле "40.012353452342457845"

score1 = brisque.score(img1)
        print("Score for"+(b)+" ", score1)
        cv2.putText(
        img = img,
        text = str(score1),
        org = (0, 50),
        fontFace = cv2.FONT_HERSHEY_DUPLEX,
        fontScale = 2.0,
        color = (125, 246, 55),
        thickness = 3
        )


Как максимально правильно написать логику, чтобы цвет текста зависел от числа?
Я понимаю, что это логика if/else, но единственное что я хочу менять это цвет, остальные параметры остаются как есть. Как такое реализовать, чтобы не делать 100 лишних строк?
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
AgentSmith
@AgentSmith
Это мой правильный ответ на твой вопрос
snaiper04ek
@snaiper04ek
Не стреляйте в эникея, он админит как умеет
text_color = (1, 1, 1) #по умолчанию текст красный

if score >10:
    text_color = (2, 2, 2) #если оценка оказалась выше 10, то меняем цвет
if score > 50:
    text_color = (3, 3, 3) #можно увеличить количество цветов, в зависимости от оценки

cv2.putText(
img = img,
text = str(score1),
org = (0, 50),
fontFace = cv2.FONT_HERSHEY_DUPLEX,
fontScale = 2.0,
color = text_color,
thickness = 3
)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@WaterSmith
Android-разработчик. Java, Kotlin
Есть такая штуковина, называется переменные. Отлично подходит в данном случае!
Заводим переменную, ну скажем text_color и присваиваем ей цвет, по условию, в зависимости от score1, а потом вместо: color = (125, 246, 55) пишем color = text_color
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы