mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-06-05 14:55:15 +02:00
modified: GPy/util/visualize.py
Added the functionality of showing a mosaic of NxN reconstructed images when the size of the number of elements in the feature vector greater than dimensions[0]*dimensions[1].
This commit is contained in:
parent
70459be588
commit
ea34f8c949
1 changed files with 20 additions and 5 deletions
|
|
@ -193,7 +193,7 @@ class lvm_dimselect(lvm):
|
||||||
|
|
||||||
class image_show(data_show):
|
class image_show(data_show):
|
||||||
"""Show a data vector as an image."""
|
"""Show a data vector as an image."""
|
||||||
def __init__(self, vals, axes=None, dimensions=(16,16), transpose=False, invert=False, scale=False, palette=[], presetMean = 0., presetSTD = -1., selectImage = 0):
|
def __init__(self, vals, axes=None, dimensions=(16,16), transpose=False, invert=False, scale=False, palette=[], presetMean = 0., presetSTD = -1., selectImage=0):
|
||||||
data_show.__init__(self, vals, axes)
|
data_show.__init__(self, vals, axes)
|
||||||
self.dimensions = dimensions
|
self.dimensions = dimensions
|
||||||
self.transpose = transpose
|
self.transpose = transpose
|
||||||
|
|
@ -214,15 +214,30 @@ class image_show(data_show):
|
||||||
def modify(self, vals):
|
def modify(self, vals):
|
||||||
self.set_image(vals)
|
self.set_image(vals)
|
||||||
self.handle.set_array(self.vals)
|
self.handle.set_array(self.vals)
|
||||||
self.axes.figure.canvas.draw() # Teo - original line: plt.show()
|
self.axes.figure.canvas.draw()
|
||||||
|
|
||||||
def set_image(self, vals):
|
def set_image(self, vals):
|
||||||
dim = self.dimensions[0] * self.dimensions[1]
|
dim = self.dimensions[0] * self.dimensions[1]
|
||||||
self.vals = np.reshape(vals[0,dim*self.selectImage+np.array(range(dim))], self.dimensions, order='F')
|
nImg = np.sqrt(vals[0,].size/dim)
|
||||||
|
if nImg > 1 and nImg.is_integer(): # Show a mosaic of images
|
||||||
|
nImg = np.int(nImg)
|
||||||
|
self.vals = np.zeros((self.dimensions[0]*nImg, self.dimensions[1]*nImg))
|
||||||
|
for iR in range(nImg):
|
||||||
|
for iC in range(nImg):
|
||||||
|
currImgId = iR*nImg + iC
|
||||||
|
currImg = np.reshape(vals[0,dim*currImgId+np.array(range(dim))], self.dimensions, order='F')
|
||||||
|
firstRow = iR*self.dimensions[0]
|
||||||
|
lastRow = (iR+1)*self.dimensions[0]
|
||||||
|
firstCol = iC*self.dimensions[1]
|
||||||
|
lastCol = (iC+1)*self.dimensions[1]
|
||||||
|
self.vals[firstRow:lastRow, firstCol:lastCol] = currImg
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.vals = np.reshape(vals[0,dim*self.selectImage+np.array(range(dim))], self.dimensions, order='F')
|
||||||
if self.transpose:
|
if self.transpose:
|
||||||
self.vals = self.vals.T.copy()
|
self.vals = self.vals.T.copy()
|
||||||
if not self.scale:
|
# if not self.scale:
|
||||||
self.vals = self.vals
|
# self.vals = self.vals
|
||||||
if self.invert:
|
if self.invert:
|
||||||
self.vals = -self.vals
|
self.vals = -self.vals
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue