Files
piphoto/piphoto.cc

31 lines
1.1 KiB
C++
Raw Normal View History

2017-07-23 22:53:02 +00:00
#include <iostream>
2017-08-06 19:12:44 +00:00
#include "color.h"
#include "colorchecker.h"
#include "colors.h"
2017-08-06 19:39:11 +00:00
#include "coord.h"
#include "image.h"
2017-08-07 04:32:01 +00:00
#include "lut.h"
2017-08-06 19:39:11 +00:00
#include "piraw.h"
#include "util.h"
2017-07-23 22:53:02 +00:00
int main() {
auto image = PiRaw2::FromJpeg(ReadFile("test.jpg"));
2017-08-07 06:15:20 +00:00
auto lut = ColorCheckerLut3d::Identity();
auto image2 = lut->MapImage(*image);
auto closest = ColorCheckerClosest(*image2);
2017-08-06 19:12:44 +00:00
for (uint32_t cc = 0; cc < kColorCheckerSrgb.size(); ++cc) {
2017-08-06 05:17:21 +00:00
const auto& coord = closest.at(cc);
const auto& color = kColorCheckerSrgb.at(cc);
2017-08-07 06:15:20 +00:00
std::cout << cc << ": " << coord << " difference=" << color.Difference(image2->GetPixel(coord)) << std::endl;
image2->DrawSquare({std::max(5U, coord.x) - 5, std::max(5U, coord.y) - 5}, kBlack, 10);
image2->DrawSquare({std::max(6U, coord.x) - 6, std::max(6U, coord.y) - 6}, color, 12);
image2->DrawSquare({std::max(7U, coord.x) - 7, std::max(7U, coord.y) - 7}, color, 14);
image2->DrawSquare({std::max(8U, coord.x) - 8, std::max(8U, coord.y) - 8}, color, 16);
image2->DrawSquare({std::max(9U, coord.x) - 9, std::max(9U, coord.y) - 9}, kWhite, 18);
2017-08-06 00:05:37 +00:00
}
2017-08-07 06:15:20 +00:00
WriteFile("test.png", image2->ToPng());
2017-07-23 22:53:02 +00:00
}