白黒画像を表す2Dナンシーアレイを3チャンネルのOpenCVアレイ(RGB画像)に変換しようとしています。私は次のようにPythonの経由でこれを行うにしようとしていますcode samplesとthe docsに基づいてナンシーアレイをOpenCVアレイに変換する
:)、しかし
import numpy as np, cv
vis = np.zeros((384, 836), np.uint32)
h,w = vis.shape
vis2 = cv.CreateMat(h, w, cv.CV_32FC3)
cv.CvtColor(vis, vis2, cv.CV_GRAY2BGR)
CvtColor(への呼び出しは、以下のCPP-レベルの例外を投げている:
OpenCV Error: Image step is wrong() in cvSetData, file /build/buildd/opencv-2.1.0/src/cxcore/cxarray.cpp, line 902
terminate called after throwing an instance of 'cv::Exception'
what(): /build/buildd/opencv-2.1.0/src/cxcore/cxarray.cpp:902: error: (-13) in function cvSetData
Aborted
私は間違って何をしていますか?
から'CvtColor'" src - ソースイメージ、8ビット符号なし、16ビット符号なし(CV_16UC ...)または単精度浮動小数点 "のドキュメント。私はあなたの数が少ない配列が 'np.uint32'であることに気づきます。これは、 'OpenCV Error:画像ステップがcvSetData'でwrong()であると説明するかもしれません。私は、コードサンプルが異なるデータ型を使用していることに気づきます。 'vis = np.zeros(max(h1、h2)、w1 + w2)、np.uint8)'を参照してください。 –