Как различить guish между темными изображениями и яркими изображениями, используя Python? - PullRequest
2 голосов
/ 16 января 2020

Как отличить guish между темными изображениями и яркими изображениями, используя Python ?? Я пытаюсь фильтровать изображения по яркости в них.

Ответы [ 3 ]

3 голосов
/ 16 января 2020

Одним из способов go было бы изменить цветовое пространство, используемое для представления ваших изображений, а затем упорядочить его путем усреднения значений соответствующего канала (как предлагается в комментариях). Например, «L канал» представления HSL довольно хорошо выделяет яркость изображения. Преобразование из RGB (красный, зеленый, синий) в HSL (яркость насыщенности оттенка) довольно просто с opencv:

import cv2

font = cv2.FONT_HERSHEY_SIMPLEX

imagedark = cv2.imread('testdark.jpg')
hsldark  = cv2.cvtColor(imagedark, cv2.COLOR_BGR2HLS)
Lchanneld = hsldark[:,:,1]
lvalueld =cv2.mean(Lchanneld)[0]
cv2.putText(imagedark, str(lvalueld), (10,450), font, 3, (0, 255, 0), 2, cv2.LINE_AA)


image = cv2.imread('test.jpg')
hsl = cv2.cvtColor(image, cv2.COLOR_BGR2HLS)
Lchannel = hsl[:,:,1]
lvalue =cv2.mean(Lchannel)[0]
cv2.putText(image, str(lvalue), (10,450), font, 3, (0, 255, 0), 2, cv2.LINE_AA)

imagelight = cv2.imread('testbright.jpg')
hsllight  = cv2.cvtColor(imagelight, cv2.COLOR_BGR2HLS)
Lchannell = hsllight[:,:,1]
lvaluel =cv2.mean(Lchannell)[0]
cv2.putText(imagelight, str(lvaluel), (10,450), font, 3, (0, 255, 0), 2, cv2.LINE_AA)

cv2.imshow('bright',imagelight)
cv2.imshow('orgid',image)
cv2.imshow('dark',imagedark)

выход:

enter image description here enter image description here

enter image description here

1 голос
/ 21 января 2020

Вы можете попробовать с np.mean (cv2.imread (image_path)) <50, чтобы различить guish изображения черного (темного) цвета. </p>

1 голос
/ 17 января 2020

Попробуйте изменить функцию предварительной обработки изображения. Вы можете попробовать следующее:

def preprocess_input(x):
  x /= 127.
  return x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...