シャープネスと明るさを推定するためだけに、MAT 変数と MatND 変数の平均値を取得したいと考えています。しかし、私は漠然とした価値観に直面しており、現実の問題に直面しています。私は最善を尽くしましたが、まだ混乱しています。正しいことをしているかどうか、私には本当にわかりません。
calcHist(&src_yuv,1,channels,Mat(),hist,1,histSize,ranges,true,false);
Size d = hist.size();
rows = d.height;
cols = d.width;
for(int k=0;k<hbins;k++)
{
for(int l=0;l<sbins;l++)
{
total = total + hist.at<float>(k,l);
}
}
brightness = total/(rows*cols);
ここでは、src_yuv の輝度チャネルのヒストグラムを計算しようとしています。これは YUV 形式で、値を平均化しています。私はそれを正しい方法でやっていますか?<' '> 内のデータ型を uchar から long int に変更すると、異なる値になってしまいますが、これは理解できます。しかし、どのデータ型を使用するのが適切かはわかりません。さらに、hbins、sbins、またはrows、cols内でループする必要がありますか? 私を助けてください。これで長い間立ち往生しています。
Laplacian(src_gray,dst,ddepth,kernel_size,scale,delta,BORDER_DEFAULT);
Size s = dst.size();
rows = s.height;
cols = s.width;
total = 0;
max = 0;
for(int k=0;k<rows;k++)
{
for(int l=0;l<cols;l++)
{
total = total + dst.at<>(k,l);
}
}
average = total/(rows*cols);
上記の場合、平均を計算する正確な方法は何ですか? ここで私を助けてくれませんか?マットの in から始めて、合計と平均の long int から始めて、さまざまなデータ型を試しました。これはグレースケール画像であり、その結果はラプラシアン畳み込み画像になります。