in source/isp/CameraIsp.h [675:761]
void dumpConfigFile(const std::string configFileName) {
std::ofstream ofs(configFileName.c_str(), std::ios::out);
if (ofs) {
ofs.precision(3);
ofs << std::fixed;
ofs << "{\n";
ofs << " \"CameraIsp\" : {\n";
ofs << " \"serial\" : 0,\n";
ofs << " \"name\" : \"RED Helium\",\n";
ofs << " \"compandingLut\" : [";
for (int i = 0; i < int(compandingLut.size()); ++i) {
if (i > 0) {
ofs << " ";
}
ofs << "[" << compandingLut[i].x << ", " << compandingLut[i].y << ", " << compandingLut[i].z
<< "]";
if (i < int(compandingLut.size()) - 1) {
ofs << ",\n";
}
}
ofs << "],\n";
ofs << " \"blackLevel\" : [" << blackLevel.x << ", " << blackLevel.y << ", "
<< blackLevel.z << "],\n";
ofs << " \"clampMin\" : [" << clampMin.x << ", " << clampMin.y << ", " << clampMin.z
<< "],\n";
ofs << " \"clampMax\" : [" << clampMax.x << ", " << clampMax.y << ", " << clampMax.z
<< "],\n";
ofs << " \"vignetteRollOffH\" : [";
for (int i = 0; i < int(vignetteRollOffH.size()); ++i) {
if (i > 0) {
ofs << " ";
}
ofs << "[" << vignetteRollOffH[i].x << ", " << vignetteRollOffH[i].y << ", "
<< vignetteRollOffH[i].z << "]";
if (i < int(vignetteRollOffH.size()) - 1) {
ofs << ",\n";
}
}
ofs << "],\n";
ofs << " \"vignetteRollOffV\" : [";
for (int i = 0; i < int(vignetteRollOffV.size()); ++i) {
if (i > 0) {
ofs << " ";
}
ofs << "[" << vignetteRollOffV[i].x << ", " << vignetteRollOffV[i].y << ", "
<< vignetteRollOffV[i].z << "]";
if (i < int(vignetteRollOffV.size()) - 1) {
ofs << ",\n";
}
}
ofs << "],\n";
ofs << " \"whiteBalanceGain\" : [" << whiteBalanceGain.x << "," << whiteBalanceGain.y
<< "," << whiteBalanceGain.z << "],\n";
ofs << " \"stuckPixelThreshold\" : " << stuckPixelThreshold << ",\n";
ofs << " \"stuckPixelDarknessThreshold\" : " << stuckPixelDarknessThreshold << ",\n";
ofs << " \"stuckPixelRadius\" : " << stuckPixelRadius << ",\n";
ofs.precision(5);
ofs << std::fixed;
ofs << " \"ccm\" : [[" << ccm(0, 0) << ", " << ccm(0, 1) << ", " << ccm(0, 2)
<< "],\n";
ofs << " [" << ccm(1, 0) << ", " << ccm(1, 1) << ", " << ccm(1, 2) << "],\n";
ofs << " [" << ccm(2, 0) << ", " << ccm(2, 1) << ", " << ccm(2, 2) << "]],\n";
ofs.precision(3);
ofs << std::fixed;
ofs << " \"sharpening\" : [" << sharpening.x << ", " << sharpening.y << ", "
<< sharpening.z << "],\n";
ofs << " \"saturation\" : " << saturation << ",\n";
ofs << " \"contrast\" : " << contrast << ",\n";
ofs << " \"lowKeyBoost\" : [" << lowKeyBoost.x << ", " << lowKeyBoost.y << ", "
<< lowKeyBoost.z << "],\n";
ofs << " \"highKeyBoost\" : [" << highKeyBoost.x << ", " << highKeyBoost.y << ", "
<< highKeyBoost.z << "],\n";
ofs << " \"gamma\" : [" << gamma.x << ", " << gamma.y << ", " << gamma.z << "],\n";
ofs << " \"bayerPattern\" : \"" << bayerPattern << "\",\n";
ofs << " \"isLittleEndian\" : " << isLittleEndian << ",\n";
ofs << " \"isPlanar\" : " << isPlanar << ",\n";
ofs << " \"isRowMajor\" : " << isRowMajor << ",\n";
ofs << " \"width\" : " << sensorWidth << ",\n";
ofs << " \"height\" : " << sensorHeight << ",\n";
ofs << " \"bitsPerPixel\" : " << sensorBitsPerPixel << ",\n";
ofs << " \"planeOrder\" : \"" << planeOrder << "\"\n";
ofs << " }\n";
ofs << "}\n";
} else {
CHECK(false) << "unable to open output ISP config file: " << configFileName;
}
}