package edu.harvard.mcb.leschziner.particlefilter;
import com.googlecode.javacv.cpp.opencv_core.CvSize;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import com.googlecode.javacv.cpp.opencv_imgproc;
import edu.harvard.mcb.leschziner.core.Particle;
import edu.harvard.mcb.leschziner.core.ParticleFilter;
public class Binner implements ParticleFilter {
/**
*
*/
private static final long serialVersionUID = 851119644112631863L;
private final double binningFactor;
public Binner(double binningFactor) {
super();
this.binningFactor = binningFactor;
}
@Override public Particle filter(Particle target) {
int newSize = (int) Math.round(target.getSize() / binningFactor);
Particle result = new Particle(IplImage.create(new CvSize(newSize,
newSize),
target.getDepth(),
target.getChannels()));
opencv_imgproc.cvResize(target.getImage(), result.getImage());
return result;
}
}