Classes | |
| struct | RotBase |
| Base structure for walkers. More... | |
| struct | Rotation_0 |
| No rotation: x->, y->. More... | |
| struct | Rotation_1_T |
| Rotated 90deg\. More... | |
| struct | Rotation_2 |
| Rotated 180deg\. More... | |
| struct | Rotation_3_T |
| Rotated 270deg\. More... | |
| struct | Rotation_0_T |
| No rotation, transposed: y->, x->. More... | |
| struct | Rotation_1 |
| Rotated 90deg\. More... | |
| struct | Rotation_2_T |
| Rotated 180deg\. More... | |
| struct | Rotation_3 |
| Rotated 270deg\. More... | |
| struct | Rotation |
| Performs manipulations with rotation codes 0-7 (dihedral group of order eight). More... | |
| struct | Checked |
| Checked_ iterator for a rectangle in a matrix, no rotation. More... | |
| struct | CheckedImage |
| Checked_ iterator for a whole QImage; no rotation, but always transposed. More... | |
| struct | OperatorBase |
| A convenience base type for operators to use with walkOperate(). More... | |
| struct | RDSummer |
| An operator computing the sum of products. More... | |
| struct | AddMulCopy |
| An operator performing a= (b+toAdd)*toMul. More... | |
| struct | MulAddCopyChecked |
| An operator performing a= b*toMul+toAdd and moving the result into [min,max] bounds. More... | |
| struct | SumWalker |
| Walker that iterates over rectangles in a matrix and returns their sums, to be constructed by makeSumWalker. More... | |
| struct | HalfShrinkerMul |
| Similar to HalfShrinker, but instead of multiplying the sums with 0.25 it uses an arbitrary number. More... | |
| struct | AddMulCopyTo2nd |
| Transformer performing an affine function. More... | |
| struct | Assigner |
| A simple assigning operator - assigns its second argument into the first one. More... | |
| struct | SignChanger |
| Transformer performing sign change. More... | |
| struct | ReverseAssigner |
| A simple assigning operator - assigns its second argument into the first one. More... | |
| struct | HalfShrinker |
| Matrix iterator performing a 2x2 to 1 shrink. More... | |
| struct | HorizShrinker |
| Matrix iterator performing a 3x3 to 1x2 shrink. More... | |
| struct | VertShrinker |
| Matrix iterator performing a 3x3 to 2x1 shrink. More... | |
| struct | DiamShrinker |
| Matrix iterator performing a shrink of a diamond (rotated sub-square) into a square, decreasing the area of used pixels to 50%. More... | |
Functions | |
| template<class Checked , class Unchecked , class Operator > | |
| Operator | walkOperate (Checked checked, Unchecked unchecked, Operator oper) |
| Iterates two matrix iterators and performs an action. | |
| template<class Check , class U , class Operator > | |
| Operator | walkOperateCheckRotate (Check checked, Operator oper, MatrixSlice< U > pixels2, const Block &block2, char rotation) |
A flavour of walkOperate() choosing the right Rotation_* iterator based on rotation and constructing it from pixels2 and block2. | |
| template<class T , class I > | |
| Checked< T, I > | makeLinearizer (T *start, I inCount, I outCount) |
| Creates a Checked structure to walk a linear array as a matrix. | |
| template<class SumT , class PixT , class I > | |
| SumWalker< SumT, PixT, I > | makeSumWalker (const SummedMatrix< SumT, PixT, I > &matrix, I x0, I y0, I inLevel, I outLevel) |
Constructs a square SumWalker on matrix starting on [x0,y0], iterating over squares of level (inLevel- and covering a square of level outLevel. | |
| Operator MatrixWalkers::walkOperate | ( | Checked | checked, | |
| Unchecked | unchecked, | |||
| Operator | oper | |||
| ) | [inline] |
Iterates two matrix iterators and performs an action.
The loop is controled by the first iterator (checked) and on every corresponding pair (a,b) oper(a,b) is invoked. Returns oper.
Definition at line 252 of file matrixUtil.h.
References MatrixWalkers::RotBase< T, I >::get(), MatrixWalkers::Checked< T, I >::innerCond(), MatrixWalkers::RotBase< T, I >::innerInit(), MatrixWalkers::Rotation_0< T, I >::innerStep(), MatrixWalkers::Checked< T, I >::outerCond(), MatrixWalkers::Checked< T, I >::outerStep(), and walkOperate().
Referenced by MStdDomains::shrinkHorizontally(), MStdDomains::shrinkToDiamond(), MStdDomains::shrinkToHalf(), MStdDomains::shrinkVertically(), walkOperate(), and walkOperateCheckRotate().


1.5.8