извлечь определенный диапазон hsv из тензора - PullRequest
0 голосов
/ 02 августа 2020

Я собираюсь создать набор данных изображений, используя тензорный поток, с помощью следующего метода.

def _parse_function(filename1, label):
  image_string1 = tf.read_file(filename1)
  image_decoded1 = tf.image.decode_jpeg(image_string1,channels=3)
  image_decoded1 = tf.image.crop_to_bounding_box(image_decoded1,100,150,400,660)
  image_resized1 = tf.image.resize_images(image_decoded1, [150, 200])/255
  img1 = tf.image.rgb_to_grayscale(image_resized1)
  # img1a = tf.squeeze(tf.image.rgb_to_grayscale(image_resized2))
  return img1,label

train_dataset = tf.data.Dataset.from_tensor_slices((img1_train,label_train)).map(_parse_function)

Но я также хочу выполнить некоторые другие операции с набором данных. Извлечь из изображений область с определенным диапазоном hsv, что можно сделать в opencv с помощью следующих кодов. Но я не знаю, как интегрировать его в функцию _parse_, поскольку данные в функции _parse_ являются тензорными. Интересно, есть ли в тензорном потоке метод, который может это сделать, или есть другие способы? Заранее спасибо!

    redLower = np.array([l_h, l_s, l_v])
    redUpper = np.array([u_h, u_s, u_v])

    hsv1 = cv2.cvtColor(img1, cv2.COLOR_BGR2HSV)

    mask = cv2.inRange(hsv1, redLower, redUpper)
    mask = cv2.erode(mask, None, iterations=2)

    mask = cv2.dilate(mask, None, iterations=2)
    mask = cv2.bitwise_not(mask)
    img1_after = cv2.bitwise_and(img1,img1,mask=mask)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...