Creates a new IPixelList by concatenating two pixel lists.
This function creates a new IPixelList with the the size of both pixel lists combined and copies the Pixel elements first from PixelListA into the new one and then the Pixel elements from PixelListB.
Note
The given PixelListA and PixelListB must have the same number of components (PixelListDimension).
If Target contains a valid handle to a IPixelList object, the list is checked for dimensional compatibility. If the dimensions match (PixelListDimension), then Target is cleared (RemoveAllPixels). The __Pixel__s from Source are copied to Target. If Target is not a valid IPixelList, then a new list will be created and filled.
Note
If Target was newly created, release the object via ReleaseObject if not needed anymore.
Parameters
[in]
Source
Source pixel list to copy.
[in,out]
Target
Pixel list to copy into or newly created pixel list.
Returns
true if successful; false if
Source is invalid
Target is valid and has differing dimension from Source
An IPixelList contains __Pixel__s defined through at least a coordinate pair (x and y). It may also contain up to 254 custom __Component__s with arbitrary interpretation.
Thin-out the PixelList in-place based on the given Locality prioritized by the ProjectionVector.
First the PixelList is sorted via SortPixelsEx(PixelList, ProjectionVector). __Pixel__s coming first in the sorted IPixelList are prioritized. All __Pixel__s lying inside the Locality of a prioritized Pixel are removed from the PixelList.
Note
The distance for the Locality is calculated in L1 norm which is not the Euclidean distance. Here the distance of the x- and y-distances are checked individually for performance reasons. Thus the Locality is a square and not a circle.
Attention
The array pointed to by ProjectionVector must have at least PixelListDimension elements!
Parameters
[in]
PixelList
Pixel list handle of object to be thinned-out.
[in]
ProjectionVector
Pointer to array of doubleComponents of the sort-direction vector; must have at least PixelListDimension elements.
[in]
Locality
Positive minimum L1 distance in pixels between two neighboring __Pixel__s.
Returns
true if successful; false if
PixelList is invalid
ProjectionVector is nullptr
Locality is smaller or equal to 0.
Example
If we have an IPixelList with x, y and quality __Component__s and we want to apply the Locality based on higher quality, then we can call:
Sort the PixelList in-place using a ProjectionVector.
The list's Pixel elements are sorted by their inner product using the ProjectionVector. This is the generalized variant of SortPixelsByPosition which only sorts by the first two components x and y and SortPixelsByValue which sorts by the third component.