On 2009-07-09 12:34, Sebastian Schabe wrote:
Hello everybody,

I want to concatenate 2 numpy array which in fact are RGB images:

def concat_images(im1,im2):
rows1 = im1.shape[0]
rows2 = im2.shape[0]

if rows1 < rows2:
im1 = concatenate((im1,zeros((rows2-rows1,im1.shape[1],3), int)), axis=0)
elif rows1 > rows2:
im2 = concatenate((im2,zeros((rows1-rows2,im2.shape[1],3), int)), axis=0)

return concatenate((im1,im2), axis=1)

It's all working fine, except that the images when showing with pylab
are somewhat interpreted as HSV images as it looks. The function zeros()
must be responsible for that circumstance, because when the arrays have
the same shape and are concatenated they appear as horizontally
concatenated images as I expected.

Can someone help me with that?

Ask on the matplotlib mailing list.

  https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Probably, you need to use zeros(..., dtype=uint8). When you use dtype=int, that will result in dtype=int arrays. I suspect that matplotlib is then interpreting that to mean that you want it to treat the input as scalar data (which it will pass through a colormap) rather than an RGB image.

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to