Lattice Search
The lattice search algorithm is one of the more complex algorithms
provided by IPLT. To quote the 2007 publication on IPLT:
In a first step a peak search is performed and the parameters
(sensitivity and desired peak size) of the peak search algorithms
are refined according to the number of peaks found. This is done to
avoid too many peaks (likely to introduce more noise peaks) or too
few peaks. From this peak list, the distance vector between each
pair of peaks is calculated. All these distance vectors contribute
to a new image, the vector image. The vector image is generated
starting from an image with all the pixel values set to zero. The
pixel value is increased by one at each position of the image
(index) defined by the components of the distance vectors. On this
image a second peak search is performed and a second vector image is
generated from these peaks. In this second vector image the two
closest points to the centre that are not collinear are taken as a
first guess for the lattice vectors.
As a consequence, there are lots of parameters to set, as detailed in
the interface description below.
Info Entry
<LatticeSearch>
<GaussFilterStrength value="1.0" type="float"/>
<PeakSearchSensitivity value="0.1" type="float"/>
<MinimalLatticeLength value="10.0" type="float"/>
<MaximalLatticeLength value="1.0e4" type="float"/>
<PeakSearchParams>
<OuterWindowSize value="10" type="int"/>
<OuterWindowSensitivity value="1.0" type="float"/>
<InnerWindowSize value="0" type="int"/>
<InnerWindowSensitivity value="0.0" type="float"/>
</PeakSearchParams>
</LatticeSearch>
Python interface
-
class iplt.alg.LatticeSearch((object)arg1)
-
AddPeakSearchExclusion((LatticeSearch)arg1, (Extent)arg2) → None :
- C++ signature :
- void AddPeakSearchExclusion(iplt::alg::LatticeSearch {lvalue},ost::img::Extent)
-
GetBestPoints((LatticeSearch)arg1) → Vec2List :
- C++ signature :
- std::vector<geom::Vec2, std::allocator<geom::Vec2> > GetBestPoints(iplt::alg::LatticeSearch {lvalue})
-
GetClosePoints((LatticeSearch)arg1) → PointList :
- C++ signature :
- ost::img::PointList GetClosePoints(iplt::alg::LatticeSearch {lvalue})
-
GetImagePeaks((LatticeSearch)arg1) → PeakList :
- C++ signature :
- std::vector<ost::img::Peak, std::allocator<ost::img::Peak> > GetImagePeaks(iplt::alg::LatticeSearch {lvalue})
-
GetImagePeaks2((LatticeSearch)arg1) → PeakList :
- C++ signature :
- std::vector<ost::img::Peak, std::allocator<ost::img::Peak> > GetImagePeaks2(iplt::alg::LatticeSearch {lvalue})
-
GetLattice((LatticeSearch)arg1) → Lattice :
- C++ signature :
- iplt::Lattice GetLattice(iplt::alg::LatticeSearch {lvalue})
-
GetTempLattice((LatticeSearch)arg1) → Lattice :
- C++ signature :
- iplt::Lattice GetTempLattice(iplt::alg::LatticeSearch {lvalue})
-
GetVectorImage((LatticeSearch)arg1) → ImageHandle :
- C++ signature :
- ost::img::ImageHandle GetVectorImage(iplt::alg::LatticeSearch {lvalue})
-
SetDVIPeakSearchParams((LatticeSearch)arg1, (int)arg2, (float)arg3, (int)arg4, (float)arg5) → None :
- C++ signature :
- void SetDVIPeakSearchParams(iplt::alg::LatticeSearch {lvalue},int,float,int,float)
-
SetGaussFilterStrength((LatticeSearch)arg1, (float)arg2) → None :
- C++ signature :
- void SetGaussFilterStrength(iplt::alg::LatticeSearch {lvalue},float)
-
SetMaximalLatticeLength((LatticeSearch)arg1, (float)arg2) → None :
- C++ signature :
- void SetMaximalLatticeLength(iplt::alg::LatticeSearch {lvalue},float)
-
SetMinimalLatticeLength((LatticeSearch)arg1, (float)arg2) → None :
- C++ signature :
- void SetMinimalLatticeLength(iplt::alg::LatticeSearch {lvalue},float)
-
SetMinimalQuality((LatticeSearch)arg1, (float)arg2) → None :
- C++ signature :
- void SetMinimalQuality(iplt::alg::LatticeSearch {lvalue},float)
-
SetPeakSearchLimits((LatticeSearch)arg1, (int)arg2, (int)arg3, (int)arg4) → None :
- C++ signature :
- void SetPeakSearchLimits(iplt::alg::LatticeSearch {lvalue},int,int,int)
-
SetPeakSearchParams((LatticeSearch)arg1, (int)arg2, (float)arg3, (int)arg4, (float)arg5[, (int)arg6[, (float)arg7]]) → None :
- C++ signature :
- void SetPeakSearchParams(iplt::alg::LatticeSearch {lvalue},int,float,int,float [,int [,float]])
-
__init__((object)arg1) → None :
- C++ signature :
- void __init__(_object*)
-
iplt.alg.UpdateFromInfo((LatticeSearch)arg1, (object)arg2) → None :
- C++ signature :
- void UpdateFromInfo(iplt::alg::LatticeSearch {lvalue},ost::info::InfoGroup)
UpdateFromInfo( (LatticeExtract)arg1, (object)arg2) -> None :
- C++ signature :
- void UpdateFromInfo(iplt::alg::LatticeExtract {lvalue},ost::info::InfoGroup)
UpdateFromInfo( (LatticeGaussianExtract)arg1, (object)arg2) -> None :
- C++ signature :
- void UpdateFromInfo(iplt::alg::LatticeGaussianExtract {lvalue},ost::info::InfoGroup)
Updates a given lattice search object from the given info group. The
following entries are recognized:
Name |
Type |
GaussFilterStrength |
float |
PeakSearchSensitivity |
float |
MinimalLatticeLength |
float |
MaximalLatticeLength |
float |
PeakSearchParams/OuterWindowSize |
int |
PeakSearchParams/OuterWindowSensitivity |
float |
PeakSearchParams/InnerWindowSize |
int |
PeakSearchParams/InnerWindowSensitivity |
float |
C++ interface