mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
fixed Ubuntu build (Eigen error in util2d::fastBilateralFiltering)
This commit is contained in:
@@ -1747,8 +1747,8 @@ cv::Mat fastBilateralFiltering(const cv::Mat & depth, float sigmaS, float sigmaR
|
|||||||
float base_max = -std::numeric_limits<float>::max ();
|
float base_max = -std::numeric_limits<float>::max ();
|
||||||
float base_min = std::numeric_limits<float>::max ();
|
float base_min = std::numeric_limits<float>::max ();
|
||||||
bool found_finite = false;
|
bool found_finite = false;
|
||||||
for (size_t x = 0; x < output.cols; ++x)
|
for (int x = 0; x < output.cols; ++x)
|
||||||
for (size_t y = 0; y < output.rows; ++y)
|
for (int y = 0; y < output.rows; ++y)
|
||||||
{
|
{
|
||||||
float z = depth.type()==CV_32FC1?output.at<float>(y, x):float(output.at<unsigned short>(y, x))/1000.0f;
|
float z = depth.type()==CV_32FC1?output.at<float>(y, x):float(output.at<unsigned short>(y, x))/1000.0f;
|
||||||
if (z > 0.0f && uIsFinite(z))
|
if (z > 0.0f && uIsFinite(z))
|
||||||
@@ -1778,10 +1778,10 @@ cv::Mat fastBilateralFiltering(const cv::Mat & depth, float sigmaS, float sigmaR
|
|||||||
|
|
||||||
UDEBUG("small_width=%d small_height=%d small_depth=%d", (int)small_width, (int)small_height, (int)small_depth);
|
UDEBUG("small_width=%d small_height=%d small_depth=%d", (int)small_width, (int)small_height, (int)small_depth);
|
||||||
Array3D data (small_width, small_height, small_depth);
|
Array3D data (small_width, small_height, small_depth);
|
||||||
for (size_t x = 0; x < depth.cols; ++x)
|
for (int x = 0; x < depth.cols; ++x)
|
||||||
{
|
{
|
||||||
const size_t small_x = static_cast<size_t> (static_cast<float> (x) / sigmaS + 0.5f) + padding_xy;
|
const size_t small_x = static_cast<size_t> (static_cast<float> (x) / sigmaS + 0.5f) + padding_xy;
|
||||||
for (size_t y = 0; y < depth.rows; ++y)
|
for (int y = 0; y < depth.rows; ++y)
|
||||||
{
|
{
|
||||||
float v = depth.type()==CV_32FC1?output.at<float>(y,x):float(output.at<unsigned short>(y,x))/1000.0f;
|
float v = depth.type()==CV_32FC1?output.at<float>(y,x):float(output.at<unsigned short>(y,x))/1000.0f;
|
||||||
if((v > 0 && uIsFinite(v)))
|
if((v > 0 && uIsFinite(v)))
|
||||||
@@ -1825,12 +1825,12 @@ cv::Mat fastBilateralFiltering(const cv::Mat & depth, float sigmaS, float sigmaR
|
|||||||
|
|
||||||
if (earlyDivision)
|
if (earlyDivision)
|
||||||
{
|
{
|
||||||
for (std::vector<Eigen::Vector2f, Eigen::aligned_allocator<Eigen::Vector2f> >::iterator d = data.begin (); d != data.end (); ++d)
|
for (std::vector<Eigen::Vector2f>::iterator d = data.begin (); d != data.end (); ++d)
|
||||||
*d /= ((*d)[0] != 0) ? (*d)[1] : 1;
|
*d /= ((*d)[0] != 0) ? (*d)[1] : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t x = 0; x < depth.cols; ++x)
|
for (int x = 0; x < depth.cols; ++x)
|
||||||
for (size_t y = 0; y < depth.rows; ++y)
|
for (int y = 0; y < depth.rows; ++y)
|
||||||
{
|
{
|
||||||
float z = depth.type()==CV_32FC1?output.at<float>(y,x):float(output.at<unsigned short>(y,x))/1000.0f;
|
float z = depth.type()==CV_32FC1?output.at<float>(y,x):float(output.at<unsigned short>(y,x))/1000.0f;
|
||||||
if(z > 0 && uIsFinite(z))
|
if(z > 0 && uIsFinite(z))
|
||||||
|
|||||||
Reference in New Issue
Block a user