Help with imshow() extent.

Hello

I am using matplotlib 1.0.0 version. and would like to use the imshow() to display my 2D image [512 X 1024]

so when I use the imshow() command as

imshow(array,origin='lower',interpolation='bilinear')
xlables - [0,100,200,400,500]
ylabels - [0,200,400,600,800,1000]

which is correct as by default the imshow will set the grid number as the labels.

Now, physical size of this grid is [52 X 152] .... so to get that values, I use the following command

imshow(array,origin='lower',interpolation='bilinear',extend=[0.0,52.0,0.0,152.0])

and the image that I obtain is not correct.
By not correct I mean that the important features in the image are not at the positions where I expect them to be while transforming from [512 X 1024] grid to
[52 X 152] physical grid.

I presume this could be due to the fact that the extent just divides the axis in uniform grid ... however my grid is not uniform.
But I do know the pixel width (dx and dy) at each position.

I have tried to use pcolor but somehow the pcolor() is too slow for such a large grid.

Can anyone help me in getting the X, and Y values correct on the axes , using imshow() and complete grid information, when I transform from [512 X 1024] grid to [52 X 152] physical grid.

Cheers
Bhargav Vaidya.