eLynx SDK
v3.3.0 C++ image processing API reference |
double arAverage3x3[] = { 1.0/9.0, 1.0/9.0, 1.0/9.0, 1.0/9.0, 1.0/9.0, 1.0/9.0, 1.0/9.0, 1.0/9.0, 1.0/9.0 }; double arAverage5x5[] = { 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0, 1.0/25.0 };
double arSmoothStrong3x3(
1.0/10.0, 1.0/10.0, 1.0/10.0,
1.0/10.0, 2.0/10.0, 1.0/10.0,
1.0/10.0, 1.0/10.0, 1.0/10.0 );
double arSmoothMedium3x3(
1.0/16.0, 2.0/16.0, 1.0/16.0,
2.0/16.0, 4.0/16.0, 2.0/16.0,
1.0/16.0, 2.0/16.0, 1.0/16.0 );
double arSmoothSoft3x3(
1.0/16.0, 1.0/16.0, 1.0/16.0,
1.0/16.0, 8.0/16.0, 1.0/16.0,
1.0/16.0, 1.0/16.0, 1.0/16.0 );
double arSharpBoost3x3(
0.0, -1.0/16.0, 0.0,
-1.0/16.0, 20.0/16.0, -1.0/16.0,
0.0, -1.0/16.0, 0.0 );
double arSharpStrong3x3(
0.0, -1.0/6.0, 0.0,
-1.0/6.0, 10.0/6.0, -1.0/6.0,
0.0, -1.0/6.0, 0.0 );
double arSharpMedium3x3(
0.0, -1.0, 0.0,
-1.0, 5.0, -1.0,
0.0, -1.0, 0.0 );
double arSharpSoft3x3(
1.0, -2.0, 1.0,
-2.0, 5.0, -2.0,
1.0, -2.0, 1.0 );
double arGaussian3x3(
1.0/16.0, 2.0/16.0, 1.0/16.0,
2.0/16.0, 4.0/16.0, 2.0/16.0,
1.0/16.0, 2.0/16.0, 1.0/16.0 );
double arLaplacian3x3(
-1.0, -1.0, -1.0,
-1.0, 9.0, -1.0,
-1.0, -1.0, -1.0 );
enum ECompassDirection { CD_North, CD_NorthEast, CD_East, CD_SouthEast, CD_South, CD_SouthWest, CD_West, CD_NorthWest };
Oriented compass edges detection: Given north kernel, we compute east one by a rotation of 90° right. For each pixels we compute:
Then resulting pixel is compute as:
virtual bool DetectEdges(AbstractImage& ioImage, const elxKerneld& iNorthKernel, ECompassDirection iDirection, bool ibQuick=false, ProgressNotifier& iNotifier) const = 0;
Compass edges detection: Given compass kernel, we compute a set of 8 kernels by 45° right rotation. For each pixels we compute:
Then we compute G as: G = max(G0,G1,G2,G3,G4,G2,G6,G7)
virtual bool DetectEdges(AbstractImage& ioImage, const elxKerneld& iNorthKernel, ProgressNotifier& iNotifier) const = 0;
double arSobelNorth3x3(
1.0, 2.0, 1.0,
0.0, 0.0, 0.0,
-1.0, -2.0, -1.0 );
double arPrewittNorth3x3(
1.0, 0.0, -1.0,
1.0, 0.0, -1.0,
1.0, 0.0, -1.0 );
double arRobinsonNorth3x3(
1.0, 0.0, -1.0,
1.0, 0.0, -1.0,
1.0, 0.0, -1.0 );
double arKirschNorth3x3(
-5.0, 3.0, 3.0,
-5.0, 0.0, 3.0,
-5.0, 3.0, 3.0 );
double arFreemanNorth3x3(
-5.0, 3.0, 3.0,
-5.0, 0.0, 3.0,
-5.0, 3.0, 3.0 );
double arFreiChenNorth3x3(
-1.0, 0.0, 1.0,
-sqrt2, 0.0, sqrt2,
-1.0, 0.0, 1.0 );
double arMarrHildreth3x3[] = {
1.0/sqrt2, 1.0, 1.0/sqrt2,
1.0, -4.0-2.0*sqrt2, 1.0,
1.0/sqrt2, 1.0, 1.0/sqrt2
};