2012-11-02 13 views
5

OpenCV 2.4.2を使用していますが、行と列に沿って2つの行列(tmpl(32x44), subj(32x44))を投影しようとしています。私はrowProjectionSubj(subj.rows,1,CV_8UC1)として結果行列を初期化しました。次に私はcv::reduce(subj,rowProjectionSubj,1,CV_REDUCE_SUM,-1);OpenCVでcv :: reduceメソッドを使用するときにサポートされていないフォーマットまたはフォーマットの組み合わせ

と呼んでいます。どうしてこれが型の不一致について不平を言っていますか? 。。私は右ではないかもしれません

答えて

2

私はグレースケール画像をスキャンすなわちcv::imread("image_path",0)を行うことによってtmplsubjオブジェクトを取得cv::reducedtype=-1を保つことによって(同じタイプを保持しているが、私はこれを見た後:

http://answers.opencv.org/question/3698/cvreduce-gives-unsupported-format-exception/?answer=3701#post-id-3701

少し実験をして、 "register math"という古い友達を使って、2つの8ビット数を追加すると、合計を保存するには8 + 1 + 1ビットレジスタを考慮する必要があります潜在的に桁上げ出力があるため、還元の結果はソースよりも大きなスペースを持つ必要があります。つまりソース8ビットの符号なしであり、少なくとも16ビットの符号なしまたは符号付きでなければなりません。もしそれがいくつかの製品の計算や物事に使用されるならば、32ビットかもしれません...

注:宛先タイプはcv :: reduceメソッドで明示的に述べる必要があります。詳細は私のopenCVリンクに従ってください。

関連する問題