【发布时间】:2012-06-13 02:53:47
【问题描述】:
我在一个 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。
【问题讨论】:
-
欢迎来到 SO :) 如果我的回答没有帮助,请出示您的代码来识别问题所在,干杯。
-
@fraxel 我无法在评论中正确格式化代码,因此编辑了问题并在那里添加了我的代码。