2D numpy 配列を視覚化する必要があります。これにはpyplotを使用しています。コードは次のとおりです。
import cv2 as cv
import numpy as np
from matplotlib import pyplot
img = pyplot.imshow( radiance_val )
#radiance_val is a 2D numpy array of size = ( 512, 512 )
#filled with np.float32 values
pyplot.show()
期待通りの出力を得ています。
私の質問は、上記のコードの「img」をpyplotタイプからnumpyタイプに変換する方法はありますか。ビジュアライゼーションを opencv イメージとしてロードし、さらに処理を実行できるようにするために、これが必要です。私はpython 2.7、32ビットを使用しています。
親切に助けて
ありがとうございました
編集1:Thorsten Kranzの解決策の後
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
import PIL
from cStringIO import StringIO
frame1 = plt.gca()
frame1.axes.get_xaxis().set_visible(False)
frame1.axes.get_yaxis().set_visible(False)
plt.imshow(np.random.random((10,10)))
buffer_ = StringIO()
plt.savefig( buffer_, format = "png", bbox_inches = 'tight', pad_inches = 0 )
buffer_.seek(0)
image = PIL.Image.open( buffer_ )
ar = np.asarray(image)
cv.imshow( 'a', ar )
cv.waitKey(0)
cv.destroyAllWindows()
ここでは、プログラムの終了後に MS VC++ ランタイム ライブラリからランタイム エラーが発生しています。私のより良い推測は、開いている「buffer_」が原因であるということです。しかし、私は必要な出力を得ています。
編集 2: を使用してバッファを閉じる
buffer_.close()
実行時エラーを解決しませんでした
最終編集:解決策