29#include <vigra/convolution.hxx>
77 std::vector<vigra::FRGBImage*>& images =
o_images;
81 std::vector<vigra::FImage *>
lapImgs;
99 vigra::FImage *
lap =
new vigra::FImage(images[
i]->size());
112#pragma omp parallel for
115 vigra::laplacianOfGaussian(srcImageRange(*(images[
i]), vigra::GreenAccessor<vigra::RGBValue<float> >()), destImage(*(
lapImgs[
i])), 1);
142 std::vector<std::multimap<double, vigra_ext::PointPairRGB> >
radiusHist(10);
149 progress->setMessage(
"sampling points");
160 progress->setMessage(
"extracting good points");
164 for (
size_t i=0;
i <
points.size();
i++) {
173 for (
size_t i=0;
i < images.size();
i++) {
virtual double getResultHorizontalFOV()
virtual double getResultHeight()
LimitType
some pre-defined limits
float m_minI
internal stored limits
LimitIntensity()
default constructor, is identical to LimitIntensity(LIMIT_FLOAT)
virtual void run()
runs the algorithm.
PanoramaData & o_panorama
virtual void setOptions(const PanoramaOptions &opt)=0
set new output settings This is not used directly for optimizing/stiching, but it can be feed into ru...
virtual const PanoramaOptions & getOptions() const =0
returns the options for this panorama
virtual void setSrcImage(unsigned int nr, const SrcPanoImage &img)=0
set input image parameters TODO: Propagate changes to linked images.
virtual SrcPanoImage getSrcImage(unsigned imgNr) const =0
get a complete description of a source image
virtual void updateVariables(const VariableMapVector &vars)=0
Set the variables.
virtual std::size_t getNrOfImages() const =0
number of images.
virtual PanoramaData * getNewCopy() const =0
void setHFOV(double h, bool keepView=true)
set the horizontal field of view.
void setHeight(unsigned int h)
set panorama height
void setROI(const vigra::Rect2D &val)
vigra::Size2D getSize() const
get size of output image
void sampleAndExtractPoints(AppBase::ProgressDisplay *progress)
static void sampleRadiusUniform(const std::vector< std::multimap< double, PointPairClass > > &radiusHist, unsigned nPoints, std::vector< PointPairClass > &selectedPoints, AppBase::ProgressDisplay *)
extract some random points out of the bins.
std::vector< vigra::FRGBImage * > o_images
virtual void samplePoints(const std::vector< InterpolImg > &imgs, const std::vector< vigra::FImage * > &voteImgs, const PanoramaData &pano, const LimitIntensityVector limitI, std::vector< std::multimap< double, vigra_ext::PointPairRGB > > &radiusHist, unsigned &nGoodPoints, unsigned &nBadPoints, AppBase::ProgressDisplay *)=0
LimitIntensityVector m_limits
virtual bool runAlgorithm()
implementation of the algorithm.
vigra_ext::ImageInterpolator< vigra::FRGBImage::const_traverser, vigra::FRGBImage::ConstAccessor, vigra_ext::interp_cubic > InterpolImg
PointPairs o_resultPoints
All variables of a source image.
void resize(const vigra::Size2D &size, VariableMap *potentialLinkedVars)
"resize" image, adjusts all distortion coefficients for usage with a source image of size size potent...
virtual void cancelAlgorithm()
Call this when the algorithm is cancelled.
virtual bool wasCancelled() const
virtual AppBase::ProgressDisplay * getProgressDisplay() const
"wrapper" for efficient interpolation access to an image
mainly consists of wrapper around the pano tools library, to assist in ressource management and to pr...
std::vector< VariableMap > VariableMapVector
std::vector< deghosting::BImagePtr > threshold(const std::vector< deghosting::FImagePtr > &inputImages, const double threshold, const uint16_t flags)
Threshold function used for creating alpha masks for images.