我正在寻找类似5/6图像的东西,我可以使用QT或C ++,我已经有了频道,但除此之外我找不到怎样做其他任何事情......
http://www.mediachance.com/pseam/help/curves.html
是否有任何算法或特殊转换使它们工作,我一直在谷歌搜索,但我可以找到一个伪算法,一切都太通用,例如:
http://www.filterforge.com/more/help/Miscellaneous/ToneCurveExplained.html https://photo.stackexchange.com/questions/6549/how-exactly-do-rgb-curves-work-and-interact-w-each-other-in-photoshop
因此,如果有人至少知道曲线如何与rgb通道相互作用,那么很高兴知道或分享信息:)
无论如何,我实际上正在尝试的是这个,有这个更为迷人的曲线:
x y 0 0 127 178 255 255
float* arrayBezierY = new float[255];
qDebug() << "Initializng Bezier Array";
int counter = 0;
for (float i = 0; i < 1; i += 1.0 / 255.0) {
int xa = getPt(0, 127, i);
int ya = getPt(0, 178, i);
int xb = getPt(127, 255, i);
int yb = getPt(178, 255, i);
int x = getPt(xa, xb, i);
int y = getPt(ya, yb, i);
arrayBezierY[counter] = y;
counter++;
}
,如How do I implement a Bézier curve in C++?
最后我将新的滤镜图像像素设为QT像素(如果是C ++则无关紧要),如下所示:
newImage->setPixel(x, y, qRgb(arrayBezierY[qRed(line[x])], arrayBezierY[qGreen(line[x])], arrayBezierY[qBlue(line[x])]));
但我有时会得到一张带有蓝点的扭曲图像,曲线与Photoshop中的曲线甚至不相近......