View Source Evision.StereoBM (Evision v0.2.16-pre)

Summary

Types

t()

Type that represents an StereoBM struct.

Functions

Clears the algorithm state

Computes disparity map for the specified stereo pair

Computes disparity map for the specified stereo pair

Creates StereoBM object

Creates StereoBM object

Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read

getDisp12MaxDiff

getMinDisparity

getNumDisparities

Gets the current truncation value for prefiltered pixels.

Gets the current size of the pre-filter kernel.

Gets the type of pre-filtering currently used in the algorithm.

Gets the current Region of Interest (ROI) for the left image.

Gets the current Region of Interest (ROI) for the right image.

Gets the current size of the smaller block used for texture check.

getSpeckleRange

getSpeckleWindowSize

Gets the current texture threshold value.

Gets the current uniqueness ratio value.

Reads algorithm parameters from a file storage

Sets the truncation value for prefiltered pixels.

Sets the size of the pre-filter kernel.

Sets the type of pre-filtering used in the algorithm.

Sets the Region of Interest (ROI) for the left image.

Sets the Region of Interest (ROI) for the right image.

Sets the size of the smaller block used for texture check.

Sets the threshold for filtering low-texture regions.

Sets the uniqueness ratio for filtering ambiguous matches.

Stores algorithm parameters in a file storage

Enumerator

Link to this function

cv_PREFILTER_NORMALIZED_RESPONSE()

View Source

Types

@type enum() :: integer()
@type t() :: %Evision.StereoBM{ref: reference()}

Type that represents an StereoBM struct.

  • ref. reference()

    The underlying erlang resource variable.

Functions

@spec clear(Keyword.t()) :: any() | {:error, String.t()}
@spec clear(t()) :: t() | {:error, String.t()}

Clears the algorithm state

Positional Arguments
  • self: Evision.StereoBM.t()

Python prototype (for reference only):

clear() -> None
@spec compute(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

compute(self, left, right)

View Source
@spec compute(t(), Evision.Mat.maybe_mat_in(), Evision.Mat.maybe_mat_in()) ::
  Evision.Mat.t() | {:error, String.t()}

Computes disparity map for the specified stereo pair

Positional Arguments
  • self: Evision.StereoBM.t()

  • left: Evision.Mat.

    Left 8-bit single-channel image.

  • right: Evision.Mat.

    Right image of the same size and the same type as the left one.

Return
  • disparity: Evision.Mat.t().

    Output disparity map. It has the same size as the input images. Some algorithms, like StereoBM or StereoSGBM compute 16-bit fixed-point disparity map (where each disparity value has 4 fractional bits), whereas other algorithms output 32-bit floating-point disparity map.

Python prototype (for reference only):

compute(left, right[, disparity]) -> disparity
Link to this function

compute(self, left, right, opts)

View Source
@spec compute(
  t(),
  Evision.Mat.maybe_mat_in(),
  Evision.Mat.maybe_mat_in(),
  [{atom(), term()}, ...] | nil
) :: Evision.Mat.t() | {:error, String.t()}

Computes disparity map for the specified stereo pair

Positional Arguments
  • self: Evision.StereoBM.t()

  • left: Evision.Mat.

    Left 8-bit single-channel image.

  • right: Evision.Mat.

    Right image of the same size and the same type as the left one.

Return
  • disparity: Evision.Mat.t().

    Output disparity map. It has the same size as the input images. Some algorithms, like StereoBM or StereoSGBM compute 16-bit fixed-point disparity map (where each disparity value has 4 fractional bits), whereas other algorithms output 32-bit floating-point disparity map.

Python prototype (for reference only):

compute(left, right[, disparity]) -> disparity
@spec create() :: t() | {:error, String.t()}

Creates StereoBM object

Keyword Arguments
  • numDisparities: integer().

    The disparity search range. For each pixel, the algorithm will find the best disparity from 0 (default minimum disparity) to numDisparities. The search range can be shifted by changing the minimum disparity.

  • blockSize: integer().

    The linear size of the blocks compared by the algorithm. The size should be odd (as the block is centered at the current pixel). Larger block size implies smoother, though less accurate disparity map. Smaller block size gives more detailed disparity map, but there is a higher chance for the algorithm to find a wrong correspondence.

Return
  • retval: Evision.StereoBM.t()

@return A pointer to the created StereoBM object. @details The function creates a StereoBM object. You can then call StereoBM::compute() to compute disparity for a specific stereo pair.

Python prototype (for reference only):

create([, numDisparities[, blockSize]]) -> retval
@spec create(Keyword.t()) :: any() | {:error, String.t()}
@spec create([blockSize: term(), numDisparities: term()] | nil) ::
  t() | {:error, String.t()}

Creates StereoBM object

Keyword Arguments
  • numDisparities: integer().

    The disparity search range. For each pixel, the algorithm will find the best disparity from 0 (default minimum disparity) to numDisparities. The search range can be shifted by changing the minimum disparity.

  • blockSize: integer().

    The linear size of the blocks compared by the algorithm. The size should be odd (as the block is centered at the current pixel). Larger block size implies smoother, though less accurate disparity map. Smaller block size gives more detailed disparity map, but there is a higher chance for the algorithm to find a wrong correspondence.

Return
  • retval: Evision.StereoBM.t()

@return A pointer to the created StereoBM object. @details The function creates a StereoBM object. You can then call StereoBM::compute() to compute disparity for a specific stereo pair.

Python prototype (for reference only):

create([, numDisparities[, blockSize]]) -> retval
@spec empty(Keyword.t()) :: any() | {:error, String.t()}
@spec empty(t()) :: boolean() | {:error, String.t()}

Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: bool

Python prototype (for reference only):

empty() -> retval
Link to this function

getBlockSize(named_args)

View Source
@spec getBlockSize(Keyword.t()) :: any() | {:error, String.t()}
@spec getBlockSize(t()) :: integer() | {:error, String.t()}

getBlockSize

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

Python prototype (for reference only):

getBlockSize() -> retval
Link to this function

getDefaultName(named_args)

View Source
@spec getDefaultName(Keyword.t()) :: any() | {:error, String.t()}
@spec getDefaultName(t()) :: binary() | {:error, String.t()}

getDefaultName

Positional Arguments
  • self: Evision.StereoBM.t()
Return

Returns the algorithm string identifier. This string is used as top level xml/yml node tag when the object is saved to a file or string.

Python prototype (for reference only):

getDefaultName() -> retval
Link to this function

getDisp12MaxDiff(named_args)

View Source
@spec getDisp12MaxDiff(Keyword.t()) :: any() | {:error, String.t()}
@spec getDisp12MaxDiff(t()) :: integer() | {:error, String.t()}

getDisp12MaxDiff

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

Python prototype (for reference only):

getDisp12MaxDiff() -> retval
Link to this function

getMinDisparity(named_args)

View Source
@spec getMinDisparity(Keyword.t()) :: any() | {:error, String.t()}
@spec getMinDisparity(t()) :: integer() | {:error, String.t()}

getMinDisparity

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

Python prototype (for reference only):

getMinDisparity() -> retval
Link to this function

getNumDisparities(named_args)

View Source
@spec getNumDisparities(Keyword.t()) :: any() | {:error, String.t()}
@spec getNumDisparities(t()) :: integer() | {:error, String.t()}

getNumDisparities

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

Python prototype (for reference only):

getNumDisparities() -> retval
Link to this function

getPreFilterCap(named_args)

View Source
@spec getPreFilterCap(Keyword.t()) :: any() | {:error, String.t()}
@spec getPreFilterCap(t()) :: integer() | {:error, String.t()}

Gets the current truncation value for prefiltered pixels.

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

@return The current pre-filter cap value.

Python prototype (for reference only):

getPreFilterCap() -> retval
Link to this function

getPreFilterSize(named_args)

View Source
@spec getPreFilterSize(Keyword.t()) :: any() | {:error, String.t()}
@spec getPreFilterSize(t()) :: integer() | {:error, String.t()}

Gets the current size of the pre-filter kernel.

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

@return The current pre-filter size.

Python prototype (for reference only):

getPreFilterSize() -> retval
Link to this function

getPreFilterType(named_args)

View Source
@spec getPreFilterType(Keyword.t()) :: any() | {:error, String.t()}
@spec getPreFilterType(t()) :: integer() | {:error, String.t()}

Gets the type of pre-filtering currently used in the algorithm.

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

@return The current pre-filter type: 0 for PREFILTER_NORMALIZED_RESPONSE or 1 for PREFILTER_XSOBEL.

Python prototype (for reference only):

getPreFilterType() -> retval
@spec getROI1(Keyword.t()) :: any() | {:error, String.t()}
@spec getROI1(t()) :: {number(), number(), number(), number()} | {:error, String.t()}

Gets the current Region of Interest (ROI) for the left image.

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: Rect

@return The current ROI for the left image.

Python prototype (for reference only):

getROI1() -> retval
@spec getROI2(Keyword.t()) :: any() | {:error, String.t()}
@spec getROI2(t()) :: {number(), number(), number(), number()} | {:error, String.t()}

Gets the current Region of Interest (ROI) for the right image.

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: Rect

@return The current ROI for the right image.

Python prototype (for reference only):

getROI2() -> retval
Link to this function

getSmallerBlockSize(named_args)

View Source
@spec getSmallerBlockSize(Keyword.t()) :: any() | {:error, String.t()}
@spec getSmallerBlockSize(t()) :: integer() | {:error, String.t()}

Gets the current size of the smaller block used for texture check.

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

@return The current smaller block size.

Python prototype (for reference only):

getSmallerBlockSize() -> retval
Link to this function

getSpeckleRange(named_args)

View Source
@spec getSpeckleRange(Keyword.t()) :: any() | {:error, String.t()}
@spec getSpeckleRange(t()) :: integer() | {:error, String.t()}

getSpeckleRange

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

Python prototype (for reference only):

getSpeckleRange() -> retval
Link to this function

getSpeckleWindowSize(named_args)

View Source
@spec getSpeckleWindowSize(Keyword.t()) :: any() | {:error, String.t()}
@spec getSpeckleWindowSize(t()) :: integer() | {:error, String.t()}

getSpeckleWindowSize

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

Python prototype (for reference only):

getSpeckleWindowSize() -> retval
Link to this function

getTextureThreshold(named_args)

View Source
@spec getTextureThreshold(Keyword.t()) :: any() | {:error, String.t()}
@spec getTextureThreshold(t()) :: integer() | {:error, String.t()}

Gets the current texture threshold value.

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

@return The current texture threshold.

Python prototype (for reference only):

getTextureThreshold() -> retval
Link to this function

getUniquenessRatio(named_args)

View Source
@spec getUniquenessRatio(Keyword.t()) :: any() | {:error, String.t()}
@spec getUniquenessRatio(t()) :: integer() | {:error, String.t()}

Gets the current uniqueness ratio value.

Positional Arguments
  • self: Evision.StereoBM.t()
Return
  • retval: integer()

@return The current uniqueness ratio.

Python prototype (for reference only):

getUniquenessRatio() -> retval
@spec read(Keyword.t()) :: any() | {:error, String.t()}
@spec read(t(), Evision.FileNode.t()) :: t() | {:error, String.t()}

Reads algorithm parameters from a file storage

Positional Arguments

Python prototype (for reference only):

read(fn) -> None
@spec save(Keyword.t()) :: any() | {:error, String.t()}
@spec save(t(), binary()) :: t() | {:error, String.t()}

save

Positional Arguments
  • self: Evision.StereoBM.t()
  • filename: String

Saves the algorithm to a file. In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).

Python prototype (for reference only):

save(filename) -> None
Link to this function

setBlockSize(named_args)

View Source
@spec setBlockSize(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setBlockSize(self, blockSize)

View Source
@spec setBlockSize(t(), integer()) :: t() | {:error, String.t()}

setBlockSize

Positional Arguments
  • self: Evision.StereoBM.t()
  • blockSize: integer()

Python prototype (for reference only):

setBlockSize(blockSize) -> None
Link to this function

setDisp12MaxDiff(named_args)

View Source
@spec setDisp12MaxDiff(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setDisp12MaxDiff(self, disp12MaxDiff)

View Source
@spec setDisp12MaxDiff(t(), integer()) :: t() | {:error, String.t()}

setDisp12MaxDiff

Positional Arguments
  • self: Evision.StereoBM.t()
  • disp12MaxDiff: integer()

Python prototype (for reference only):

setDisp12MaxDiff(disp12MaxDiff) -> None
Link to this function

setMinDisparity(named_args)

View Source
@spec setMinDisparity(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setMinDisparity(self, minDisparity)

View Source
@spec setMinDisparity(t(), integer()) :: t() | {:error, String.t()}

setMinDisparity

Positional Arguments
  • self: Evision.StereoBM.t()
  • minDisparity: integer()

Python prototype (for reference only):

setMinDisparity(minDisparity) -> None
Link to this function

setNumDisparities(named_args)

View Source
@spec setNumDisparities(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setNumDisparities(self, numDisparities)

View Source
@spec setNumDisparities(t(), integer()) :: t() | {:error, String.t()}

setNumDisparities

Positional Arguments
  • self: Evision.StereoBM.t()
  • numDisparities: integer()

Python prototype (for reference only):

setNumDisparities(numDisparities) -> None
Link to this function

setPreFilterCap(named_args)

View Source
@spec setPreFilterCap(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setPreFilterCap(self, preFilterCap)

View Source
@spec setPreFilterCap(t(), integer()) :: t() | {:error, String.t()}

Sets the truncation value for prefiltered pixels.

Positional Arguments
  • self: Evision.StereoBM.t()

  • preFilterCap: integer().

    The truncation value. Typically in the range [1, 63].

@details This value caps the output of the pre-filter to [-preFilterCap, preFilterCap], helping to reduce the impact of noise and outliers in the pre-filtered image.

Python prototype (for reference only):

setPreFilterCap(preFilterCap) -> None
Link to this function

setPreFilterSize(named_args)

View Source
@spec setPreFilterSize(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setPreFilterSize(self, preFilterSize)

View Source
@spec setPreFilterSize(t(), integer()) :: t() | {:error, String.t()}

Sets the size of the pre-filter kernel.

Positional Arguments
  • self: Evision.StereoBM.t()

  • preFilterSize: integer().

    The size of the pre-filter kernel. Must be an odd integer, typically between 5 and 255.

@details The pre-filter size determines the spatial extent of the pre-filtering operation, which prepares the images for disparity computation by normalizing brightness and enhancing texture. Larger sizes reduce noise but may blur details, while smaller sizes preserve details but are more susceptible to noise.

Python prototype (for reference only):

setPreFilterSize(preFilterSize) -> None
Link to this function

setPreFilterType(named_args)

View Source
@spec setPreFilterType(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setPreFilterType(self, preFilterType)

View Source
@spec setPreFilterType(t(), integer()) :: t() | {:error, String.t()}

Sets the type of pre-filtering used in the algorithm.

Positional Arguments
  • self: Evision.StereoBM.t()
  • preFilterType: integer().The type of pre-filter to use. Possible values are:
    • PREFILTER_NORMALIZED_RESPONSE (0): Uses normalized response for pre-filtering.
    • PREFILTER_XSOBEL (1): Uses the X-Sobel operator for pre-filtering.

@details The pre-filter type affects how the images are prepared before computing the disparity map. Different pre-filtering methods can enhance specific image features or reduce noise, influencing the quality of the disparity map.

Python prototype (for reference only):

setPreFilterType(preFilterType) -> None
@spec setROI1(Keyword.t()) :: any() | {:error, String.t()}
@spec setROI1(t(), {number(), number(), number(), number()}) ::
  t() | {:error, String.t()}

Sets the Region of Interest (ROI) for the left image.

Positional Arguments
  • self: Evision.StereoBM.t()

  • roi1: Rect.

    The ROI rectangle for the left image.

@details By setting the ROI, the stereo matching computation is limited to the specified region, improving performance and potentially accuracy by focusing on relevant parts of the image.

Python prototype (for reference only):

setROI1(roi1) -> None
@spec setROI2(Keyword.t()) :: any() | {:error, String.t()}
@spec setROI2(t(), {number(), number(), number(), number()}) ::
  t() | {:error, String.t()}

Sets the Region of Interest (ROI) for the right image.

Positional Arguments
  • self: Evision.StereoBM.t()

  • roi2: Rect.

    The ROI rectangle for the right image.

@details Similar to setROI1, this limits the computation to the specified region in the right image.

Python prototype (for reference only):

setROI2(roi2) -> None
Link to this function

setSmallerBlockSize(named_args)

View Source
@spec setSmallerBlockSize(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setSmallerBlockSize(self, blockSize)

View Source
@spec setSmallerBlockSize(t(), integer()) :: t() | {:error, String.t()}

Sets the size of the smaller block used for texture check.

Positional Arguments
  • self: Evision.StereoBM.t()

  • blockSize: integer().

    The size of the smaller block. Must be an odd integer between 5 and 255.

@details This parameter determines the size of the block used to compute texture variance. Smaller blocks capture finer details but are more sensitive to noise, while larger blocks are more robust but may miss fine details.

Python prototype (for reference only):

setSmallerBlockSize(blockSize) -> None
Link to this function

setSpeckleRange(named_args)

View Source
@spec setSpeckleRange(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setSpeckleRange(self, speckleRange)

View Source
@spec setSpeckleRange(t(), integer()) :: t() | {:error, String.t()}

setSpeckleRange

Positional Arguments
  • self: Evision.StereoBM.t()
  • speckleRange: integer()

Python prototype (for reference only):

setSpeckleRange(speckleRange) -> None
Link to this function

setSpeckleWindowSize(named_args)

View Source
@spec setSpeckleWindowSize(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setSpeckleWindowSize(self, speckleWindowSize)

View Source
@spec setSpeckleWindowSize(t(), integer()) :: t() | {:error, String.t()}

setSpeckleWindowSize

Positional Arguments
  • self: Evision.StereoBM.t()
  • speckleWindowSize: integer()

Python prototype (for reference only):

setSpeckleWindowSize(speckleWindowSize) -> None
Link to this function

setTextureThreshold(named_args)

View Source
@spec setTextureThreshold(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setTextureThreshold(self, textureThreshold)

View Source
@spec setTextureThreshold(t(), integer()) :: t() | {:error, String.t()}

Sets the threshold for filtering low-texture regions.

Positional Arguments
  • self: Evision.StereoBM.t()

  • textureThreshold: integer().

    The threshold value. Must be non-negative.

@details This parameter filters out regions with low texture, where establishing correspondences is difficult, thus reducing noise in the disparity map. Higher values filter more aggressively but may discard valid information.

Python prototype (for reference only):

setTextureThreshold(textureThreshold) -> None
Link to this function

setUniquenessRatio(named_args)

View Source
@spec setUniquenessRatio(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

setUniquenessRatio(self, uniquenessRatio)

View Source
@spec setUniquenessRatio(t(), integer()) :: t() | {:error, String.t()}

Sets the uniqueness ratio for filtering ambiguous matches.

Positional Arguments
  • self: Evision.StereoBM.t()

  • uniquenessRatio: integer().

    The uniqueness ratio value. Typically in the range [5, 15], but can be from 0 to 100.

@details This parameter ensures that the best match is sufficiently better than the next best match, reducing false positives. Higher values are stricter but may filter out valid matches in difficult regions.

Python prototype (for reference only):

setUniquenessRatio(uniquenessRatio) -> None
@spec write(Keyword.t()) :: any() | {:error, String.t()}
@spec write(t(), Evision.FileStorage.t()) :: t() | {:error, String.t()}

Stores algorithm parameters in a file storage

Positional Arguments

Python prototype (for reference only):

write(fs) -> None
@spec write(t(), Evision.FileStorage.t(), binary()) :: t() | {:error, String.t()}

write

Positional Arguments

Has overloading in C++

Python prototype (for reference only):

write(fs, name) -> None