class cv::AlignMTB

Overview

This algorithm converts images to median threshold bitmaps (1 for pixels brighter than median luminance and 0 otherwise) and than aligns the resulting bitmaps using bit operations. More…

#include <photo.hpp>

class AlignMTB: public cv::AlignExposures
{
public:
    // methods

    virtual
    Point
    calculateShift(
        InputArray img0,
        InputArray img1
        ) = 0;

    virtual
    void
    computeBitmaps(
        InputArray img,
        OutputArray tb,
        OutputArray eb
        ) = 0;

    virtual
    bool
    getCut() const = 0;

    virtual
    int
    getExcludeRange() const = 0;

    virtual
    int
    getMaxBits() const = 0;

    virtual
    void
    process(
        InputArrayOfArrays src,
        std::vector<Mat>& dst,
        InputArray times,
        InputArray response
        ) = 0;

    virtual
    void
    process(
        InputArrayOfArrays src,
        std::vector<Mat>& dst
        ) = 0;

    virtual
    void
    setCut(bool value) = 0;

    virtual
    void
    setExcludeRange(int exclude_range) = 0;

    virtual
    void
    setMaxBits(int max_bits) = 0;

    virtual
    void
    shiftMat(
        InputArray src,
        OutputArray dst,
        const Point shift
        ) = 0;
};

Inherited Members

public:
    // methods

    virtual
    void
    clear();

    virtual
    bool
    empty() const;

    virtual
    String
    getDefaultName() const;

    virtual
    void
    read(const FileNode& fn);

    virtual
    void
    save(const String& filename) const;

    virtual
    void
    write(FileStorage& fs) const;

    template <typename _Tp>
    static
    Ptr<_Tp>
    load(
        const String& filename,
        const String& objname = String()
        );

    template <typename _Tp>
    static
    Ptr<_Tp>
    loadFromString(
        const String& strModel,
        const String& objname = String()
        );

    template <typename _Tp>
    static
    Ptr<_Tp>
    read(const FileNode& fn);

    virtual
    void
    process(
        InputArrayOfArrays src,
        std::vector<Mat>& dst,
        InputArray times,
        InputArray response
        ) = 0;

protected:
    // methods

    void
    writeFormat(FileStorage& fs) const;

Detailed Documentation

This algorithm converts images to median threshold bitmaps (1 for pixels brighter than median luminance and 0 otherwise) and than aligns the resulting bitmaps using bit operations.

It is invariant to exposure, so exposure values and camera response are not necessary.

In this implementation new image regions are filled with zeros.

For more information see [90].

Methods

virtual
Point
calculateShift(
    InputArray img0,
    InputArray img1
    ) = 0

Calculates shift between two images, i. e. how to shift the second image to correspond it with the first.

Parameters:

img0 first image
img1 second image
virtual
void
computeBitmaps(
    InputArray img,
    OutputArray tb,
    OutputArray eb
    ) = 0

Computes median threshold and exclude bitmaps of given image.

Parameters:

img input image
tb median threshold bitmap
eb exclude bitmap
virtual
void
process(
    InputArrayOfArrays src,
    std::vector<Mat>& dst,
    InputArray times,
    InputArray response
    ) = 0

Aligns images.

Parameters:

src vector of input images
dst vector of aligned images
times vector of exposure time values for each image
response 256x1 matrix with inverse camera response function for each pixel value, it should have the same number of channels as images.
virtual
void
process(
    InputArrayOfArrays src,
    std::vector<Mat>& dst
    ) = 0

Short version of process, that doesn’t take extra arguments.

Parameters:

src vector of input images
dst vector of aligned images
virtual
void
shiftMat(
    InputArray src,
    OutputArray dst,
    const Point shift
    ) = 0

Helper function, that shift Mat filling new regions with zeros.

Parameters:

src input image
dst result image
shift shift value