System:
python: 3.6.8 |Anaconda custom (64-bit)| (default, Dec 29 2018, 19:04:46) [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]
executable: /Users/steve/miniconda3/envs/retinanet/bin/python
machine: Darwin-18.2.0-x86_64-i386-64bit
BLAS:
macros: SCIPY_MKL_H=None, HAVE_CBLAS=None
lib_dirs: /Users/steve/miniconda3/envs/retinanet/lib
cblas_libs: mkl_rt, pthread
Python deps:
pip: 19.0.3
setuptools: 40.8.0
sklearn: 0.20.3
numpy: 1.16.2
scipy: 1.2.1
Cython: 0.29.6
pandas: 0.24.2
Я пытаюсь преобразовать изображение в патчи, а затем преобразовать его обратно в изображение и сохранить. Есть две функции, которые, кажется, делают это.
https://scikit -learn.org / стабильный / модули / генерироваться / sklearn.feature_extraction.image.extract_patches_2d.html # sklearn.feature_extraction.image.extract_patches_2d
https://scikit -learn.org / стабильный / модули / полученные / sklearn.feature_extraction.image.reconstruct_from_patches_2d.html # sklearn.feature_extraction.image.reconstruct_from_patches_2d
Используя следующий код, воссоздание патчей, кажется, просто "чернит" изображение и уменьшает его размер (исходный размер изображения составляет 31 МБ, а новый размер составляет 33 КБ). Нет цвета, ничего. Мусор.
import numpy as np
from PIL import Image
from sklearn.feature_extraction import image as skl
image = Image.open('./myimage.tif')
image = np.array(image)[..., :3]
patches = skl.extract_patches_2d(image, (300, 300), max_patches = 250)
reconstruct = skl.reconstruct_from_patches_2d(patches, image.shape)
# i need this as uint8, as i'm saving it back into an image
# i tried using skimage.img_as_ubyte, but i recieve an error
reconstruct = reconstruct.astype(np.uint8)
Image.fromarray(reconstruct, 'RGB').save('./myimage.out.tif')
Есть ли что-то, что я делаю не так? Патчи, возвращаемые из extract_patches_2d, имеют цвет и выглядят хорошо. Поэтому я ожидаю, что реконструкция будет вести себя так же.