public abstract class DisparityScoreRowFormat<Input extends boofcv.struct.image.ImageGray,Disparity extends boofcv.struct.image.ImageGray>
extends java.lang.Object
Base class for all dense stereo disparity score algorithms whose score's can be processed by
DisparitySelect. The scores for all possible disparities at each pixel is computed for
an entire row at once. Then DisparitySelect is called to process this score.
Score Format: The index of the score for column i ≥ radiusX + minDisparity at disparity d is:
index = imgWidth*(d-minDisparity-radiusX) + i - minDisparity-radiusX
Format Comment:
This ordering is a bit unnatural when searching for the best disparity, but reduces cache misses
when writing. Performance boost is about 20%-30% depending on max disparity and image size.
| Modifier and Type | Field and Description |
|---|---|
protected int |
lengthHorizontal |
protected int |
maxDisparity |
protected int |
minDisparity |
protected int |
radiusX |
protected int |
radiusY |
protected int |
rangeDisparity |
protected int |
regionHeight |
protected int |
regionWidth |
| Constructor and Description |
|---|
DisparityScoreRowFormat(int minDisparity,
int maxDisparity,
int regionRadiusX,
int regionRadiusY)
Configures disparity calculation.
|
| Modifier and Type | Method and Description |
|---|---|
abstract void |
_process(Input left,
Input right,
Disparity disparity)
Inner function that computes the disparity.
|
int |
getBorderX() |
int |
getBorderY() |
abstract java.lang.Class<Disparity> |
getDisparityType() |
abstract java.lang.Class<Input> |
getInputType() |
int |
getMaxDisparity() |
int |
getMinDisparity() |
void |
process(Input left,
Input right,
Disparity disparity)
Computes disparity between two stereo images
|
protected int minDisparity
protected int maxDisparity
protected int rangeDisparity
protected int lengthHorizontal
protected int radiusX
protected int radiusY
protected int regionWidth
protected int regionHeight
public DisparityScoreRowFormat(int minDisparity,
int maxDisparity,
int regionRadiusX,
int regionRadiusY)
minDisparity - Minimum disparity that it will check. Must be ≥ 0 and < maxDisparitymaxDisparity - Maximum disparity that it will calculate. Must be > 0regionRadiusX - Radius of the rectangular region along x-axis.regionRadiusY - Radius of the rectangular region along y-axis.public void process(Input left, Input right, Disparity disparity)
left - Left rectified stereo image. Inputright - Right rectified stereo image. Inputdisparity - Disparity between the two images. Outputpublic abstract void _process(Input left, Input right, Disparity disparity)
public abstract java.lang.Class<Input> getInputType()
public abstract java.lang.Class<Disparity> getDisparityType()
public int getMinDisparity()
public int getMaxDisparity()
public int getBorderX()
public int getBorderY()