IndexError: индекс кортежа вне диапазона - вычисление среднего RGB - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь вычислить средние значения RGB для изображения, используя python.Я нашел приемлемый метод, используя NumPy здесь.

Как найти средний цвет изображения в Python с помощью OpenCV?

Я могу рассчитать средние значения RGB, используя пример изображения в ответе выше,но я не могу рассчитать средние значения RGB моего изображения (ниже).

enter image description here

import os
import cv2
import numpy as np


path = ('C:/images')

img = cv2.imread(path + '/1049.jpg', 0)
img = np.array(img)
average = img.mean(axis=0).mean(axis =0)
print(average)

Я получаю следующую ошибку.

    Traceback (most recent call last):
  File "c:/Users/isaac_madsen/Google Drive/Rhizoc_2018/image_stats.py", line 21, in <module>
    average = img.mean(axis=0).mean(axis =0)
  File "C:\Users\isaac_madsen\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\core\_methods.py", line 57, in _mean
    rcount = _count_reduce_items(arr, axis)
  File "C:\Users\isaac_madsen\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\core\_methods.py", line 50, in _count_reduce_items
    items *= arr.shape[ax]
IndexError: tuple index out of range

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

Средства асимметричных массивов в numpy

1 Ответ

0 голосов
/ 19 декабря 2018

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

BASE_PATH = 'C:/images'
FILE_PATH = os.path.join(BASE_PATH, '1049.jpg')

try:
    fh = open(FILE_PATH, 'r')
    img = cv2.imread(FILE_PATH, 0)
    img = np.array(img)
    average = img.mean(axis=0).mean(axis =0)
    print(average)

except FileNotFoundError:
    print(f"No file here: {FILE_PATH}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...