Я импортировал цветное изображение с помощью функции openCV imread.Как получить индексы пикселей определенного значения RGB изображения в python?
im = cv2.imread('test.jpg')
Я ищу, чтобы найти индексы белых пикселей, которые имеют значение в пикселях [255, 255, 255]. Я знаю, что im - это 3D-массив. Но странно, что значение im [0,0] - [255 255 255], а не [255, 255, 255]. И im [0,0,0] - 255. Таким образом, [255 255 255] кажется списком или чем-то, но на самом деле не эквивалентен [255, 255, 255].
>>> print im[0,0]
[255 255 255]
>>> print im[0,0,0]
255
Так что мои вопросы:
- В чем разница между [255 255 255] и [255, 255, 255]?
- Как я могу получить индексы всех пикселов withe? Какой алгоритм поиска я должен использовать?
В C++ вы использовали бы 'cv :: findNonZero' на маске белых пикселей:' cv :: Mat1b mask; cv :: inRange (img, cv :: Scalar (255,255,255), cv :: Scalar (255,255,255), маска); std :: vector pts; cv :: findNonZero (маска, pts); '. В оболочках Python должно быть что-то подобное. Или, возможно, некоторые шутеры с использованием средств Numpy ... –
Miki