Как использовать Sci-kit Учиться Восстановление_from_patches_2d - PullRequest
0 голосов
/ 04 ноября 2019

Я работаю над проектом обработки изображений, который должен считывать изображения, разбивать их на перекрывающиеся участки, выполнять некоторые операции над участками и затем объединять их в одно изображение. Для этой задачи я решил научить sci-kit изучать методы extract_patches_2d и реконструировать_from_patches_2d.

https://scikit -learn.org / stable / modules / generate / sklearn.feature_extraction.image.extract_patches_2d.html https://scikit -learn.org / stable / modules / генерируется / sklearn.feature_extraction.image.reconstruct_from_patches_2d.html

import numpy as np
import cv2
from sklearn.feature_extraction import image as extraction

img = cv2.imread("cat_small.jpg", cv2.IMREAD_COLOR)
grid_size = 500
images = extraction.extract_patches_2d(img, (grid_size, grid_size), max_patches=100)
image = extraction.reconstruct_from_patches_2d(images, img.shape)
cv2.imwrite("stack_overflow_test.jpg", image)

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

Изображение: Picture of a cat

становится: Black image with white at the top

, которое выглядит полностью черным при просмотре на беломфон, но имеет несколько белых пикселей к верхнему левому углу (это видно при открытии на отдельной вкладке). Эта же проблема возникает в градациях серого.

Я пытался добавить astype (np.uint8), как описано в Как преобразовать массив в цветовой канал изображения в python? безрезультатно. Как правильно использовать этот метод?

...