我在一个 numpy 数组中有一个图像,我使用 savefig 保存它,然后使用 opencv loadImage 函数将图像加载到 CvMat。但我想删除这个保存图像的步骤。
我的 Numpy 图像大小是 25x21,如果我使用 fromArray 函数
im = cv.fromarray(asarray(img))
我得到一个尺寸为 25x21 的 CvMat,它非常小。但是当我将图像保存为 png 格式并使用 LoadImage 将其加载回来时,我得到了大小为 429x509 的全尺寸图像。
有人可以告诉我如何将这个全尺寸图像从 numpy 数组获取到 CvMat 吗?我可以在代码中将图像从 numpy 数组转换为 png 格式而不使用 savefig() 保存吗?这就是我现在正在做的事情。
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')
上面 img 的大小为 525,gridM 和 gridN 分别为 25 和 21。然后我使用以下方法加载此图像:
img = cv.LoadImage(fileName, cv.CV_LOAD_IMAGE_GRAYSCALE)
现在 img 大小为 429x509。