私は一連の jpg を読み込んでから、OpenCV の convertTo(Mat, CV_32FC3) 関数を使用してそれらを変換しています。
Mat outImg = Mat.zeros(tmp.size(), CV_32FC3);
Mat curImg = new Mat();
for (int i = 0; i < imgCount; i++) {
fname = fp + String.format("%02d", i) + ".jpg";
curImg = imread(fname);
curImg.convertTo(curImg, CV_32FC3);
Imgproc.accumulateWeighted(curImg, outImg, 0.01);
}
outImg.convertTo(outImg, CV_8UC3, ?????);
imwrite(fp + "output" + "-" + curTime + ".jpg", outImg);
jpg に書き込む前に CV_8UC3 に戻す必要があると思いますが、その方法がわかりません。255 (convertTo() の 3 番目のパラメーター) を掛けてスケーリングする必要があるという他の SO の回答を見つけましたが、そうすると出力が完全に白くなります。100 の方が適切な数値ですが、それでもかなりの量のクリッピングがあります (8 ビット画像では 255 が最も論理的な数値であることは言うまでもありません)。これはこれを行う正しい方法ですか?そうでない場合、どうすれば画像を正しく保存できますか?