Определите все значения, близкие к нулю - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть пустой массив, и я использую постоянное значение из массива.Я хочу, чтобы значения стали отрицательными, если это необходимо (а не обтекание или от нуля до нуля).Затем мне нужно извлечь все значения массива, которые находятся около нуля, и создать новый двоичный массив / изображение.Таким образом, полученное изображение будет показывать белый цвет в местах, которые были близки к нулю.

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

# roi is a numpy array/image in Cielab colour space
swatch_colour = (255, 10, 30) # Cielab colour space
swatch_roi = np.full((roi.shape[0], roi.shape[1], 3), swatch_colour, dtype='int8')
int_roi = roi.astype('int8')
diff = np.subtract(int_roi, swatch_roi)

thresh = diff.copy()
# Get all pixels whose Cielab colour is close to zero
thresh[np.abs(thresh) < (12,6,12)] = 0
# the remaining pixels are greater than/less than the above threshold
thresh[np.abs(thresh) > (0,0,0)] = 255

thresh = thresh.astype('uint8')
# convert from 3 channels to 1 channel
thresh = cv2.cvtColor(thresh, cv2.COLOR_BGR2GRAY)
# Invert the image so that the pixels that were close to zero are white
thresh = cv2.bitwise_not(thresh)

1 Ответ

0 голосов
/ 20 апреля 2019

Numpy может индексировать логические операторы срезов

почему ты можешь сделать что-то подобное?

image[image.logical_and( image > -05 , image < 05 )]

https://docs.scipy.org/doc/numpy/reference/generated/numpy.logical_and.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...