Convertir una matriz numpy con datos de imagen a CvMat

Tengo una imagen en una matriz numpy que guardo usando savefig y luego uso la función opencv loadImage para cargar la imagen en un CvMat. Pero quiero eliminar esto guardando el paso de la imagen.

El tamaño de mi imagen Numpy es 25x21, y si uso la función fromArray como

im = cv.fromarray (asarray (img))

Obtengo un CvMat de tamaño 25x21 que es muy pequeño. Pero cuando guardo la imagen en formato png y la vuelvo a cargar con LoadImage, obtengo una imagen de tamaño completo de tamaño 429x509.

¿Alguien puede decirme cómo obtengo esta imagen de tamaño completo de una matriz numpy a CvMat? ¿Puedo convertir la imagen de una matriz numpy a un formato png en código sin guardarla utilizando savefig ()? Esto es lo que estoy haciendo ahora mismo.

imgFigure = imshow(zeros((gridM,gridN)),cmap=cm.gray,vmin=VMIN,vmax=5,animated=True,interpolation='nearest',extent=[xmin,xmax,ymin,ymax])  
imgFigure.set_data(reshape(img,(gridM,gridN)))  
draw()  
fileName = '1p_'
fileName += str(counter)
fileName += ".png" 
savefig(fileName,bbox_inches='tight',pad_inches=0.01,facecolor='black')

El tamaño de img anterior es 525 y gridM y gridN son 25 y 21. Luego, cargo esta imagen usando:

img = cv.LoadImage(fileName, cv.CV_LOAD_IMAGE_GRAYSCALE)

Ahora el tamaño img es 429x509.

Respuestas a la pregunta(1)

Su respuesta a la pregunta