#python-3.x #opencv #image-processing #numpy-ndarray #color-detection
Вопрос:
введите описание изображения здесь, я хочу определить цвет формы на изображении,поэтому, когда я запускаю код «bgr_list = img[cX, cY]», я получаю эту ошибку:
bgr_list = img[cX,cY]
IndexError: index 648 is out of bounds for axis 0 with size 598
but when I run "bgr_list = img[300,300]" I do not get any error
->where [300,300] is white portion in image
-> where, cX = x-coordinate of centroid and cY = y-coordinate of centroid
-> BGR_list is bgr value of pixel at centroid
-> the size of image is 898x598 pixel
Комментарии:
1. просто предположение: попробуйте изменить строку индексирования на
bgr_list = img[cY,cX]
2. Спасибо @DominikFicek, это сработало, можете ли вы также объяснить логику изменения координат?
Ответ №1:
Похоже, вы получаете декартовы координаты X и Y из какой-то предварительной обработки, но numpy
матрицы, которые использует opencv, используют матричную индексацию (row, column, channel)
. Ваша координата X соответствует индексу столбца, а координата Y-это ваш индекс строки.
Пролистывание индексов должно выполнить свою работу bgr_list = img[cY,cX]