Go to the source code of this file.
§ blendColors()
QRgb blendColors |
( |
QRgb |
color1, |
|
|
QRgb |
color2, |
|
|
double |
alpha |
|
) |
| |
Definition at line 362 of file tilt.cpp.
References MAX, and MIN.
Referenced by interpolatedPixelValue().
364 double alpha2 = 1.0-alpha;
365 return qRgb( (
int)
MAX(
MIN( 255, alpha2*qRed (Qt::color1) + alpha*qRed(color2) ), 0 ),
366 (
int)
MAX(
MIN( 255, alpha2*qGreen(Qt::color1) + alpha*qGreen(color2) ), 0 ),
367 (
int)
MAX(
MIN( 255, alpha2*qBlue (Qt::color1) + alpha*qBlue(color2) ), 0 ) );
§ findTwoLineIntersection()
Definition at line 370 of file tilt.cpp.
References DPoint::x(), and DPoint::y().
Referenced by correctImageTilt().
378 if(p1.
x() == p2.
x() &&
386 if( p1.
x() == p3.
x() )
387 {
return DPoint( p1.
x(), p1.
y() ); }
391 {
return DPoint( -32000, -32000 ); }
403 else if( p1.
x() == p2.
x() )
405 double slopeB = ((double) (p4.
y() - p3.
y()) ) / (p4.
x() - p3.
x());
407 double yInterceptB = p3.
y() - slopeB*p3.
x();
410 return DPoint( p2.
x(), slopeB*p2.
x() + yInterceptB );
417 else if( p4.
x() == p3.
x() )
419 double slopeA = ((double) (p2.
y() - p1.
y()) ) / (p2.
x() - p1.
x());
421 double yInterceptA = p1.
y() - slopeA*p1.
x();
424 return DPoint( p4.
x(), slopeA*p4.
x() + yInterceptA );
431 double slopeA = ((double) (p2.
y() - p1.
y()) ) / (p2.
x() - p1.
x());
432 double slopeB = ((double) (p4.
y() - p3.
y()) ) / (p4.
x() - p3.
x());
433 double yInterceptA = p1.
y() - slopeA*p1.
x();
434 double yInterceptB = p3.
y() - slopeB*p3.
x();
445 double x = (yInterceptB - yInterceptA) / (slopeA - slopeB);
446 return DPoint( x, (slopeA * x) + yInterceptA );
§ interpolatedPixelValue()
QRgb interpolatedPixelValue |
( |
double |
xp, |
|
|
double |
yp, |
|
|
QImage * |
image |
|
) |
| |
Definition at line 315 of file tilt.cpp.
References blendColors(), height, and width.
Referenced by correctImageTilt().
320 if(xp < 0 || xp >= image->width() ||
321 yp < 0 || yp >= image->height() )
322 return qRgb( 0, 0, 0 );
328 uchar* scanLine1 = image->scanLine( y );
331 if( y < image->
height() - 1 )
332 scanLine2 = image->scanLine( y+1 );
334 scanLine2 = scanLine1;
338 p1 = *((QRgb*)scanLine1+x);
339 p3 = *((QRgb*)scanLine2+x);
341 if( x < image->
width() - 1)
343 p2 = *((QRgb*)scanLine1+x+1);
344 p4 = *((QRgb*)scanLine2+x+1);
353 double alphaY = yp - y;
354 double alphaX = xp - x;
QRgb blendColors(QRgb color1, QRgb color2, double alpha)