6
इस प्रतिलिपि प्रस्तुत करने योग्य उदाहरण पर विचार करें:विभिन्न "छवि" से मानक के अनुसार NumPy सरणी वस्तुओं
from PIL import Image
import numpy as np
import scipy.misc as sm
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib.cbook as cbook
import urllib
datafile = cbook.get_sample_data('lena.jpg')
lena_pil = Image.open(datafile)
lena_pil_np = np.asarray(lena_pil)
lena_scipy = sm.lena()
lena_tmp = open('lena_tmp.png', 'wb')
lena_tmp.write(urllib.urlopen('http://optipng.sourceforge.net/pngtech/img/lena.png').read())
lena_tmp.close()
lena_mpl = mpimg.imread('lena_tmp.png')
sm.info(lena_pil_np)
sm.info(lena_scipy)
sm.info(lena_mpl)
आउटपुट है:
>>> sm.info(lena_pil_np)
class: ndarray
shape: (512, 512, 3)
strides: (1536, 3, 1)
itemsize: 1
aligned: True
contiguous: True
fortran: False
data pointer: 0xb707e01cL
byteorder: little
byteswap: False
type: uint8
>>> sm.info(lena_scipy)
class: ndarray
shape: (512, 512)
strides: (2048, 4)
itemsize: 4
aligned: True
contiguous: True
fortran: False
data pointer: 0xb6f7d008L
byteorder: little
byteswap: False
type: int32
>>> sm.info(lena_mpl)
class: ndarray
shape: (512, 512, 3)
strides: (6144, 12, 4)
itemsize: 4
aligned: True
contiguous: True
fortran: False
data pointer: 0xb6c7b008L
byteorder: little
byteswap: False
type: float32
इसलिए सभी सरणियों विभिन्न आकार और प्रकार के हैं।
अतिरिक्त प्रसंस्करण के लिए मैं इस सरणी को अंतिम चर lena.mpl
में प्रदर्शित करना चाहता हूं, या सिर्फ सरणी मानों को उनके सामान्यीकृत [0..1] फ्लोट 32 प्रकार में बदलने के लिए।
ऐसा करने का सबसे अच्छा तरीका क्या है?