1
template <typename T>
T accumulate(cv::Mat mat){
T acc=0;
for(int i=0;i<mat.cols();i++)
for(int j=0;j<mat.rows();j++)
acc += mat.at<T>(i,j);
return acc;
}
問題は、私はおよそData Typesを読んで、私はかなりだということですそれらを尊重するような機能を実装する(または呼び出す)方法が混乱しています。
つまり、mat
タイプがCV_32FC
であるとします。 accumulate<float>(mat)
で正しく電話するのは、accumulate
ユーザーの責任です。これは有名なエラーの原因です(スタックオーバフローは、人がat
を呼び出している間に間違ったタイプを使用するため、質問で満ちています)。
これを回避してこのプロセスを自動化するにはどうすればよいですか?
特定してください、それらの問題は、正確には何ですか? –
私の更新された質問にお答えください – justHelloWorld
これは有名なエラーの原因です。あなたができると思うことは、 'CV_ASSERT'チェックを追加して' T'型が実際に 'Mat'型のものであることを確認することです。これはopencvフォークがAPIクライアントに間違いを警告するためのものです。 –