1

savefig を使用して保存した numpy 配列に画像があり、opencv loadImage 関数を使用して画像を CvMat にロードします。しかし、この画像の保存ステップを削除したいと思います。

私の Numpy 画像のサイズは 25x21 で、 fromArray 関数を次のように使用すると

im = cv.fromarray(asarray(img))

非常に小さいサイズ 25x21 の CvMat を取得します。しかし、画像を png 形式で保存し、LoadImage を使用して再度読み込むと、サイズ 429x509 のフルサイズの画像が得られます。

このフルサイズの画像を numpy 配列から CvMat に取得する方法を教えてください。savefig() を使用して画像を保存せずに、コードで画像を numpy 配列から png 形式に変換できますか? これが私が今していることです。

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 です。

4

1 に答える 1

2

cv.fromarray()numpy 配列を直接使用するだけで、その間に保存する必要はありません。

import cv
import numpy as np
a = np.arange(0,255,0.0255).reshape(50,200)
b = cv.fromarray(a)
cv.SaveImage('saved.png', b)
print b
#Output:
<cvmat(type=42424006 64FC1 rows=50 cols=200 step=1600 )>

numpy 配列は cvmat になり、サイズは変更されません。これは保存された画像です:

ここに画像の説明を入力

于 2012-06-09T07:57:00.543 に答える