Skip to content
Snippets Groups Projects
Commit d3c95caa authored by Provot Bertrand's avatar Provot Bertrand
Browse files

Merge remote-tracking branch 'origin/dev2018' into dev2018

parents 7f62f5cb 50c36b27
No related branches found
No related tags found
No related merge requests found
......@@ -33,16 +33,27 @@ bool PseudoColorOp::needCurrentImg() const {
return true;
}
static int getLinearHue(int value, int nhue){
return floor(value * nhue / 255);
}
void PseudoColorOp::operator()(const imagein::Image* image, const std::map<const imagein::Image*, std::string>&) {
GrayscaleImage* tmpImg = Converter<GrayscaleImage>::convert(*image);
Image* resImg = new Image(tmpImg->getWidth(), tmpImg->getHeight(), 3);
GrayscaleImage* tmpImg = Converter<GrayscaleImage>::convert(*image);
Image* resImg = new Image(tmpImg->getWidth(), tmpImg->getHeight(), 3);
int nhue = 255; // changer cette valeur en fonction de la fenêtre de dialog
int (*getHue)(int a, int b);
getHue = getLinearHue;
for(unsigned int j = 0; j < tmpImg->getHeight(); ++j) {
for(unsigned int i = 0; i < tmpImg->getWidth(); ++i) {
Image::depth_t value = tmpImg->getPixel(i, j);
const int nhue = 256;
const int ngrad = ceil(256. / (double)nhue);
const int hue = floor(value * nhue / 256); /* € [0, nhue[ */
const int grad = value - ceil((double)hue * 256. / (double)nhue); /* € [0, ngrad[ */
const int ngrad = ceil(255. / (double)nhue);
const int hue = getHue(value, nhue); /* € [0, nhue[ */
const int grad = value - ceil((double)hue * 255 / (double)nhue); /* € [0, ngrad[ */
QColor color = QColor::fromHsl(300 - hue * 300 / nhue, 255, (grad + 1) * 255 / (ngrad + 1));
resImg->setPixel(i, j, 0, color.red());
resImg->setPixel(i, j, 1, color.green());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment