Я хочу создать функцию generate_from_image, которая принимает

  • Вход: изображение (массив numpy)
  • Вывод: функция, которая возвращает: учитывая индекс пикселя, возвращает цвет этого пикселя.

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

Что пробовал:

orig_img = cv2.imread("plane.jpg")
orig_list = cvimg_to_list(orig_img)

def generator_from_image(img):
    return img.shape[0], img.shape[1]

generator = generator_from_image(orig_list)

new_list = [generator(i) for i in range(len(orig_list))]
-1
Erik 1 Окт 2022 в 21:12
Узнайте об индексации с помощью numpy numpy.org/doc/stable/user/basics.indexing .html
 – 
Christoph Rackwitz
1 Окт 2022 в 21:55

1 ответ

Попробуйте это, если вам нужна функция

def generator_from_image(img, x, y):
    return img[x][y]

# If you want to apply it on flatten image
def generator_from_flatten_image(img, index):
    return img[index]

Если вы хотите сделать свое изображение одномерным массивом значений RGB, тогда непосредственно извлеките цвет пикселя, а затем

img = cv2.imread("path/to/image")
flatten_img = img.reshape((img.shape[0] * img.shape[1], img.shape[2]))
pixel_colors = [x for x in flatten_img.to_list()]
0
sourin 1 Окт 2022 в 21:36