本文整理汇总了Java中mpicbg.models.PointMatch类的典型用法代码示例。如果您正苦于以下问题:Java PointMatch类的具体用法?Java PointMatch怎么用?Java PointMatch使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PointMatch类属于mpicbg.models包,在下文中一共展示了PointMatch类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: convertMatchesToLocal
import mpicbg.models.PointMatch; //导入依赖的package包/类
public static List<PointMatch> convertMatchesToLocal(final List<PointMatch> worldMatchList,
final TileSpec pMatchTileSpec,
final TileSpec qMatchTileSpec) {
final List<PointMatch> localMatchList = new ArrayList<>(worldMatchList.size());
Point pPoint;
Point qPoint;
for (final PointMatch worldMatch : worldMatchList) {
try {
pPoint = getLocalPoint(worldMatch.getP1(), pMatchTileSpec);
qPoint = getLocalPoint(worldMatch.getP2(), qMatchTileSpec);
localMatchList.add(new PointMatch(pPoint, qPoint));
} catch (final NoninvertibleModelException e) {
LOG.warn("skipping match", e);
}
}
return localMatchList;
}
开发者ID:saalfeldlab,项目名称:render,代码行数:19,代码来源:ResidualCalculator.java
示例2: sampleAverageScale
import mpicbg.models.PointMatch; //导入依赖的package包/类
/**
* Sample the average scaling of a given {@link CoordinateTransform} by transferring a set of point samples using
* the {@link CoordinateTransform} and then least-squares fitting a {@link SimilarityModel2D} to it.
*
* @param width of the samples set
* @param height of the samples set
* @param dx spacing between samples
*
* @return average scale factor
*/
public static double sampleAverageScale(final CoordinateTransform ct,
final int width,
final int height,
final double dx) {
final ArrayList<PointMatch> samples = new ArrayList<>();
for (double y = 0; y < height; y += dx) {
for (double x = 0; x < width; x += dx) {
final Point p = new Point(new double[]{x, y});
p.apply(ct);
samples.add(new PointMatch(p, p));
}
}
final AffineModel2D model = new AffineModel2D();
try {
model.fit(samples);
} catch (final NotEnoughDataPointsException | IllDefinedDataPointsException e) {
LOG.warn("failed to fit samples, returning scale factor of 1", e);
return 1;
}
final double[] data = new double[6];
model.toArray(data);
// return 1;
return Math.sqrt(Math.max(data[0] * data[0] + data[1] * data[1], data[2] * data[2] + data[3] * data[3]));
}
开发者ID:saalfeldlab,项目名称:render,代码行数:35,代码来源:Utils.java
示例3: testRANSACFilterWithMinValue
import mpicbg.models.PointMatch; //导入依赖的package包/类
private void testRANSACFilterWithMinValue(final List<PointMatch> candidates,
final int minNumInliers,
final int expectedInliersSizeAfterFilter)
throws NotEnoughDataPointsException {
final List<PointMatch> inliers = new ArrayList<>();
final int iterations = 1000;
final float maxEpsilon = 20f;
final float minInlierRatio = 0.0f;
final float maxTrust = 3.0f;
final AffineModel2D model = new AffineModel2D();
model.filterRansac(candidates,
inliers,
iterations,
maxEpsilon,
minInlierRatio,
minNumInliers,
maxTrust);
Assert.assertEquals("invalid number of inliers found with min " + minNumInliers,
expectedInliersSizeAfterFilter, inliers.size());
}
开发者ID:saalfeldlab,项目名称:render,代码行数:26,代码来源:CanvasFeatureMatcherTest.java
示例4: calculateBoundingBox
import mpicbg.models.PointMatch; //导入依赖的package包/类
/**
*
* @param pm PointMatches
* @param min x = min[0], y = min[1]
* @param max x = max[0], y = max[1]
*/
final static protected void calculateBoundingBox(
final ArrayList< PointMatch > pm,
final float[] min,
final float[] max )
{
final float[] first = pm.get( 0 ).getP2().getW();
min[ 0 ] = first[ 0 ];
min[ 1 ] = first[ 1 ];
max[ 0 ] = first[ 0 ];
max[ 1 ] = first[ 1 ];
for ( final PointMatch p : pm )
{
final float[] t = p.getP2().getW();
if ( t[ 0 ] < min[ 0 ] ) min[ 0 ] = t[ 0 ];
else if ( t[ 0 ] > max[ 0 ] ) max[ 0 ] = t[ 0 ];
if ( t[ 1 ] < min[ 1 ] ) min[ 1 ] = t[ 1 ];
else if ( t[ 1 ] > max[ 1 ] ) max[ 1 ] = t[ 1 ];
}
}
开发者ID:bogovicj,项目名称:hhmi-exp,代码行数:27,代码来源:CrackTransformMeshMapping.java
示例5: calculateBoundingBoxInverse
import mpicbg.models.PointMatch; //导入依赖的package包/类
/**
*
* @param pm PointMatches
* @param min x = min[0], y = min[1]
* @param max x = max[0], y = max[1]
*/
final static protected void calculateBoundingBoxInverse(
final ArrayList< PointMatch > pm,
final float[] min,
final float[] max )
{
final float[] first = pm.get( 0 ).getP1().getL();
min[ 0 ] = first[ 0 ];
min[ 1 ] = first[ 1 ];
max[ 0 ] = first[ 0 ];
max[ 1 ] = first[ 1 ];
for ( final PointMatch p : pm )
{
final float[] t = p.getP1().getL();
if ( t[ 0 ] < min[ 0 ] ) min[ 0 ] = t[ 0 ];
else if ( t[ 0 ] > max[ 0 ] ) max[ 0 ] = t[ 0 ];
if ( t[ 1 ] < min[ 1 ] ) min[ 1 ] = t[ 1 ];
else if ( t[ 1 ] > max[ 1 ] ) max[ 1 ] = t[ 1 ];
}
}
开发者ID:bogovicj,项目名称:hhmi-exp,代码行数:27,代码来源:CrackTransformMeshMapping.java
示例6: updateWithDections
import mpicbg.models.PointMatch; //导入依赖的package包/类
/**
* Apply the current {@link Model} to all local point coordinates.
* Update {@link #cost} and {@link #distance}.
*
*/
final public void updateWithDections()
{
// call the original method
update();
if ( matches.size() > 0 )
{
for ( final PointMatch match : matches )
{
final double dl = match.getDistance();
((AbstractDetection<?>)match.getP1()).setDistance( (float)dl );
((AbstractDetection<?>)match.getP2()).setDistance( (float)dl );
}
}
}
开发者ID:fiji,项目名称:SPIM_Registration,代码行数:22,代码来源:TileSPIM.java
示例7: assignPointMatches
import mpicbg.models.PointMatch; //导入依赖的package包/类
@Override
public ArrayList<PointMatch> assignPointMatches( final List<P> target, final List<P> reference )
{
final ArrayList<PointMatch> pointMatches = new ArrayList<PointMatch>();
final KDTree<P> kdTreeTarget = new KDTree<P>( target );
final NearestNeighborSearch<P> nnSearchTarget = new NearestNeighborSearch<P>( kdTreeTarget );
for ( final P point : reference )
{
final P correspondingPoint = nnSearchTarget.findNearestNeighbor( point );
if ( correspondingPoint.distanceTo( point ) <= distanceThresold )
pointMatches.add( new PointMatch ( correspondingPoint, point ) );
}
return pointMatches;
}
开发者ID:fiji,项目名称:SPIM_Registration,代码行数:19,代码来源:SimplePointMatchIdentification.java
示例8: estimateIntialModel
import mpicbg.models.PointMatch; //导入依赖的package包/类
/**
* Estimates an initial {@link Model} based on some given {@link PointMatch}es. Note that the {@link PointMatch}es have to be stored as PointMatch(target,reference).
*
* @param matches - The {@link List} of apriori known {@link PointMatch}es
* @param model - The {@link Model} to use
* @throws NotEnoughDataPointsException
* @throws IllDefinedDataPointsException
*/
public void estimateIntialModel( final List<PointMatch> matches, final Model<?> model ) throws NotEnoughDataPointsException, IllDefinedDataPointsException
{
/* remove ambigous correspondences */
ambigousMatches = removeAmbigousMatches( matches );
/* fit the model */
model.fit( matches );
/* apply the new model of the target to determine the error */
for ( final P point : target )
point.apply( model );
/* compute the output */
avgError = PointMatch.meanDistance( matches );
maxError = PointMatch.maxDistance( matches );
numMatches = matches.size();
pointMatches = matches;
}
开发者ID:fiji,项目名称:SPIM_Registration,代码行数:27,代码来源:ICP.java
示例9: getSimilarity
import mpicbg.models.PointMatch; //导入依赖的package包/类
@Override
public double getSimilarity( final ArrayList<PointMatch> matches )
{
final int numDimensions = matches.get( 0 ).getP1().getL().length;
double difference = 0;
for ( final PointMatch match : matches )
{
final double[] t1 = match.getP2().getW();
final double[] t2 = match.getP1().getW();
for ( int d = 0; d < numDimensions; ++d )
difference += Math.abs( t1[ d ] - t2[ d ] );
}
return difference / (double)numDimensions;
}
开发者ID:fiji,项目名称:SPIM_Registration,代码行数:19,代码来源:ManhattanDistance.java
示例10: createCandidates
import mpicbg.models.PointMatch; //导入依赖的package包/类
@Override
public ArrayList<ArrayList<PointMatch>> createCandidates( final AbstractPointDescriptor<?, ?> pd1, final AbstractPointDescriptor<?, ?> pd2 )
{
final ArrayList<ArrayList<PointMatch>> matchesList = new ArrayList<ArrayList<PointMatch>>();
for ( int a = 0; a < numCombinations; ++a )
for ( int b = 0; b < numCombinations; ++b )
{
final ArrayList<PointMatch> matches = new ArrayList<PointMatch>( subsetSize );
for ( int i = 0; i < subsetSize; ++i )
{
final PointMatch pointMatch = new PointMatch( pd1.getDescriptorPoint( neighbors[ a ][ i ] ), pd2.getDescriptorPoint( neighbors[ b ][ i ] ) );
matches.add( pointMatch );
}
matchesList.add( matches );
}
return matchesList;
}
开发者ID:fiji,项目名称:SPIM_Registration,代码行数:23,代码来源:SubsetMatcher.java
示例11: createCandidates
import mpicbg.models.PointMatch; //导入依赖的package包/类
@Override
public ArrayList<ArrayList<PointMatch>> createCandidates( final AbstractPointDescriptor<?, ?> pd1, final AbstractPointDescriptor<?, ?> pd2 )
{
final ArrayList<PointMatch> matches = new ArrayList<PointMatch>( numNeighbors );
for ( int i = 0; i < numNeighbors; ++i )
{
final PointMatch pointMatch = new PointMatch( pd1.getDescriptorPoint( i ), pd2.getDescriptorPoint( i ) );
matches.add( pointMatch );
}
final ArrayList<ArrayList<PointMatch>> matchesList = new ArrayList<ArrayList<PointMatch>>();
matchesList.add( matches );
return matchesList;
}
开发者ID:fiji,项目名称:SPIM_Registration,代码行数:17,代码来源:SimpleMatcher.java
示例12: fit
import mpicbg.models.PointMatch; //导入依赖的package包/类
/**
* Closed form weighted least squares solution as described by
* \citet{SchaeferAl06} and implemented by Johannes Schindelin.
*/
@Override
final public < P extends PointMatch >void fit( final Collection< P > matches )
throws NotEnoughDataPointsException
{
if ( matches.size() < MIN_NUM_MATCHES ) throw new NotEnoughDataPointsException( matches.size() + " data points are not enough to estimate a 2d rigid model, at least " + MIN_NUM_MATCHES + " data points required." );
cos = 0;
sin = 0;
for ( final P m : matches )
{
final double[] p = m.getP1().getL();
final double[] q = m.getP2().getW();
final double w = m.getWeight();
final double x1 = p[ 0 ];
final double y1 = p[ 1 ]; // x2
final double x2 = q[ 0 ]; // y1
final double y2 = q[ 1 ]; // y2
sin += w * ( x1 * y2 - y1 * x2 ); // x1 * y2 - x2 * y1 // assuming p1 is x1,x2 and p2 is y1,y2
cos += w * ( x1 * x2 + y1 * y2 ); // x1 * y1 + x2 * y2
}
final double norm = Math.sqrt( cos * cos + sin * sin );
cos /= norm;
sin /= norm;
}
开发者ID:fiji,项目名称:SPIM_Registration,代码行数:30,代码来源:TranslationInvariantRigidModel2D.java
示例13: minMax
import mpicbg.models.PointMatch; //导入依赖的package包/类
final static protected double[] minMax( final Iterable< PointMatch > matches )
{
final Iterator< PointMatch > iter = matches.iterator();
PointMatch m = iter.next();
double min = m.getP1().getL()[ 0 ], max = min;
while ( iter.hasNext() )
{
m = iter.next();
final double x = m.getP1().getL()[ 0 ];
if ( x < min )
min = x;
else if ( x > max )
max = x;
}
return new double[]{ min, max };
}
开发者ID:trakem2,项目名称:TrakEM2,代码行数:17,代码来源:RansacRegressionReduceFilter.java
示例14: filter
import mpicbg.models.PointMatch; //导入依赖的package包/类
@Override
public void filter( List< PointMatch > candidates, Collection< PointMatch > inliers )
{
try
{
if (
!model.filterRansac(
candidates,
inliers,
iterations,
maxEpsilon,
minInlierRatio,
minNumInliers,
maxTrust ) )
inliers.clear();
}
catch ( Exception e )
{
inliers.clear();
}
}
开发者ID:trakem2,项目名称:TrakEM2,代码行数:22,代码来源:RansacRegressionFilter.java
示例15: fit
import mpicbg.models.PointMatch; //导入依赖的package包/类
@Override
public < P extends PointMatch >void fit(final Collection< P > matches)
throws NotEnoughDataPointsException, IllDefinedDataPointsException
{
final Stack< java.awt.Point > sourcePoints = new Stack<java.awt.Point>();
final Stack< java.awt.Point > targetPoints = new Stack<java.awt.Point>();
for ( final P pm : matches )
{
final double[] p1 = pm.getP1().getL();
final double[] p2 = pm.getP2().getL();
targetPoints.add( new java.awt.Point( ( int )Math.round( p1[ 0 ] ), ( int )Math.round( p1[ 1 ] ) ) );
sourcePoints.add( new java.awt.Point( ( int )Math.round( p2[ 0 ] ), ( int )Math.round( p2[ 1 ] ) ) );
}
final Transformation transf = bUnwarpJ_.computeTransformationBatch(sourceWidth,
sourceHeight, width, height, sourcePoints, targetPoints, parameter);
this.set(transf.getIntervals(), transf.getDirectDeformationCoefficientsX(),
transf.getDirectDeformationCoefficientsY(), width, height);
}
开发者ID:trakem2,项目名称:TrakEM2,代码行数:23,代码来源:CubicBSplineTransform.java
示例16: findModel
import mpicbg.models.PointMatch; //导入依赖的package包/类
final static public boolean findModel(
final Model< ? > model,
final List< PointMatch > candidates,
final Collection< PointMatch > inliers,
final float maxEpsilon,
final float minInlierRatio,
final int minNumInliers,
final boolean rejectIdentity,
final float identityTolerance )
{
return findModel(
model,
candidates,
inliers,
maxEpsilon,
minInlierRatio,
minNumInliers,
rejectIdentity,
identityTolerance,
false );
}
开发者ID:trakem2,项目名称:TrakEM2,代码行数:22,代码来源:Align.java
示例17: serializePointMatches
import mpicbg.models.PointMatch; //导入依赖的package包/类
/**
* Save a {@link Collection} of {@link PointMatch PointMatches} two-sided.
* Creates two serialization files which is desperately required to clean
* up properly invalid serializations on change of a {@link Patch}.
*
* @param p
* @param t1
* @param t2
* @param m
* @return
*/
final static protected boolean serializePointMatches(
final Param p,
final AbstractAffineTile2D< ? > t1,
final AbstractAffineTile2D< ? > t2,
final Collection< PointMatch > m )
{
final ArrayList< PointMatch > list = new ArrayList< PointMatch >();
list.addAll( m );
final ArrayList< PointMatch > tsil = new ArrayList< PointMatch >();
PointMatch.flip( m, tsil );
final Patch p1 = t1.getPatch();
final Patch p2 = t2.getPatch();
final Loader loader = p1.getProject().getLoader();
return
loader.serialize(
new PointMatches( p, list ),
new StringBuilder( loader.getUNUIdFolder() ).append( "pointmatches.ser/" ).append( FSLoader.createIdPath( Long.toString( p1.getId() ) + "_" + Long.toString( p2.getId() ), "pointmatches", ".ser" ) ).toString() ) &&
loader.serialize(
new PointMatches( p, tsil ),
new StringBuilder( loader.getUNUIdFolder() ).append( "pointmatches.ser/" ).append( FSLoader.createIdPath( Long.toString( p2.getId() ) + "_" + Long.toString( p1.getId() ), "pointmatches", ".ser" ) ).toString() );
}
开发者ID:trakem2,项目名称:TrakEM2,代码行数:33,代码来源:Align.java
示例18: createMLST
import mpicbg.models.PointMatch; //导入依赖的package包/类
/**
* Temporary helper method that creates
* @param matches
* @param alpha
* @return
* @throws Exception
*/
final static public MovingLeastSquaresTransform2 createMLST( final Collection< PointMatch > matches, final double alpha ) throws Exception
{
final MovingLeastSquaresTransform2 mlst = new MovingLeastSquaresTransform2();
mlst.setAlpha( alpha );
Class< ? extends AbstractAffineModel2D< ? > > c = AffineModel2D.class;
switch ( matches.size() )
{
case 1:
c = TranslationModel2D.class;
break;
case 2:
c = SimilarityModel2D.class;
break;
default:
break;
}
mlst.setModel( c );
mlst.setMatches( matches );
return mlst;
}
开发者ID:trakem2,项目名称:TrakEM2,代码行数:29,代码来源:Align.java
示例19: BlockMatchResults
import mpicbg.models.PointMatch; //导入依赖的package包/类
public BlockMatchResults(final Collection<? extends Point> v1,
final Collection<? extends Point> v2,
final Collection<PointMatch> pm12,
final Collection<PointMatch> pm21,
final boolean layer1Fixed,
final boolean layer2Fixed,
final Triple<Integer, Integer, AbstractModel<?>> pair)
{
this.v1 = v1;
this.v2 = v2;
this.pm12 = pm12;
this.pm21 = pm21;
this.layer1Fixed = layer1Fixed;
this.layer2Fixed = layer2Fixed;
this.pair = pair;
}
开发者ID:trakem2,项目名称:TrakEM2,代码行数:17,代码来源:BlockMatchPairCallable.java
示例20: squareP1LocalWidth
import mpicbg.models.PointMatch; //导入依赖的package包/类
/**
* Return the maximum square distance among any pairwise point
* distances in the P1 points of a list of point matches.
* This is a rough estimate of the maximum spatial extent of a point
* cloud that is used to find the 'widest' cloud.
*
* @param matches
* @return
*/
final static private double squareP1LocalWidth( final List< PointMatch > matches )
{
double dMax = 0;
for ( int i = 0; i < matches.size(); ++i )
{
final PointMatch m1 = matches.get( i );
for ( int j = i + 1; j < matches.size(); ++j )
{
final PointMatch m2 = matches.get( j );
final double d = Point.squareLocalDistance( m1.getP1(), m2.getP1() );
if ( d > dMax )
dMax = d;
}
}
return dMax;
}
开发者ID:trakem2,项目名称:TrakEM2,代码行数:26,代码来源:RegularizedAffineLayerAlignment.java
注:本文中的mpicbg.models.PointMatch类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论