我正在阅读一系列 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);
我想我必须先将其转换回 CV_8UC3,然后才能将其写入 jpg,但我不知道该怎么做。我发现了其他一些 SO 答案,说我需要将它乘以 255(convertTo() 中的第三个参数)来缩放它,但是这样做会使输出完全变白。100 是一个更好的数字,但仍然存在大量剪辑(更不用说 255 是 8 位图片最合乎逻辑的数字)。这是正确的方法吗?如果没有,如何正确保存图像?