Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Asus extrinsic calibration failing on ir image

I am trying to follow the camera_pose_calibration guidelines as in http://www.ros.org/wiki/openni_launch/Tutorials/ExtrinsicCalibration for the Asus Xtion Pro Live. (Using Fuerte)

The checkerboard on the colour images are detected, but on my IR images it doesn't do anything. One thing I noticed was that if I open the IR stream in image_view, it is completely black. It stays black, even if I point a halogen lamp directly at the camera. However, right-clicking saves me a nice picture of the scene. The viewer for camera_pose_calibration however, shows a nice image of the IR (but it doesn't detect a checkerboard).

I have written a node that takes the IR image, and increases the contrast (multiplies everything by 256). The image now becomes visible in image_view. The image in the camera_pose_calibration is completely white, but the pattern seems to be detected. (I still get "Couldn't get measurement in interval", but I'm not sure that it is related to this problem)

Can it be that there is a conversion error somewhere? I noticed the IR image is mono16 in the messages. By multiplying it by 256 I actually shifted it by 8 bit.

Asus extrinsic calibration failing on ir image

I am trying to follow the camera_pose_calibration guidelines as in http://www.ros.org/wiki/openni_launch/Tutorials/ExtrinsicCalibration ExtrinsicCalibration for the Asus Xtion Pro Live. (Using Fuerte)

The checkerboard on the colour images are detected, but on my IR images it doesn't do anything. One thing I noticed was that if I open the IR stream in image_view, it is completely black. It stays black, even if I point a halogen lamp directly at the camera. However, right-clicking saves me a nice picture of the scene. The viewer for camera_pose_calibration however, shows a nice image of the IR (but it doesn't detect a checkerboard).

I have written a node that takes the IR image, and increases the contrast (multiplies everything by 256). The image now becomes visible in image_view. The image in the camera_pose_calibration is completely white, but the pattern seems to be detected. (I still get "Couldn't get measurement in interval", but I'm not sure that it is related to this problem)

Can it be that there is a conversion error somewhere? I noticed the IR image is mono16 in the messages. By multiplying it by 256 I actually shifted it by 8 bit.

Asus extrinsic calibration failing on ir image

I am trying to follow the camera_pose_calibration guidelines as in ExtrinsicCalibration for the Asus Xtion Pro Live. (Using Fuerte)

The checkerboard on the colour images are detected, but on my IR images it doesn't do anything. One thing I noticed was that if I open the IR stream in image_view, it is completely black. It stays black, even if I point a halogen lamp directly at the camera. However, right-clicking saves me a nice picture of the scene. The viewer for camera_pose_calibration however, shows a nice image of the IR (but it doesn't detect a checkerboard).

I have written a node that takes the IR image, and increases the contrast (multiplies everything by 256). The image now becomes visible in image_view. The image in the camera_pose_calibration is completely white, but the pattern seems to be detected. (I still get "Couldn't get measurement in interval", but I'm not sure that it is related to this problem)

Can it be that there is a conversion error somewhere? I noticed the IR image is mono16 in the messages. By multiplying it by 256 I actually shifted it by 8 bit.

Here is the callback I use to transform the image (I don't get the formatting right):

void imageCallback(const sensor_msgs::Image::ConstPtr& msg) { cv_bridge::CvImagePtr cv_ptr; try { cv_ptr = cv_bridge::toCvCopy(msg); cv_ptr->image.convertTo(cv_ptr->image, -1, alpha, beta); } catch (cv_bridge::Exception& e) { ROS_ERROR("cv_bridge exception: %s", e.what()); return; } image_pub.publish(cv_ptr->toImageMsg());
}

click to hide/show revision 4
Added a downloadlink for the workaround

Asus extrinsic calibration failing on ir image

I am trying to follow the camera_pose_calibration guidelines as in ExtrinsicCalibration for the Asus Xtion Pro Live. (Using Fuerte)

The checkerboard on the colour images are detected, but on my IR images it doesn't do anything. One thing I noticed was that if I open the IR stream in image_view, it is completely black. It stays black, even if I point a halogen lamp directly at the camera. However, right-clicking saves me a nice picture of the scene. The viewer for camera_pose_calibration however, shows a nice image of the IR (but it doesn't detect a checkerboard).

I have written a node that takes the IR image, and increases the contrast (multiplies everything by 256). The image now becomes visible in image_view. The image in the camera_pose_calibration is completely white, but the pattern seems to be detected. (I still get "Couldn't get measurement in interval", but I'm not sure that it is related to this problem)

Can it be that there is a conversion error somewhere? I noticed the IR image is mono16 in the messages. By multiplying it by 256 I actually shifted it by 8 bit.

Here is the callback I use to transform the image (I don't get the formatting right):

void imageCallback(const sensor_msgs::Image::ConstPtr& msg) { cv_bridge::CvImagePtr cv_ptr; try { cv_ptr = cv_bridge::toCvCopy(msg); cv_ptr->image.convertTo(cv_ptr->image, -1, alpha, beta); } catch (cv_bridge::Exception& e) { ROS_ERROR("cv_bridge exception: %s", e.what()); return; } image_pub.publish(cv_ptr->toImageMsg());
}

You can download the node for the workaround here and see a short explanation of it here.

Asus extrinsic calibration failing on ir image

I am trying to follow the camera_pose_calibration guidelines as in ExtrinsicCalibration for the Asus Xtion Pro Live. (Using Fuerte)

The checkerboard on the colour images are detected, but on my IR images it doesn't do anything. One thing I noticed was that if I open the IR stream in image_view, it is completely black. It stays black, even if I point a halogen lamp directly at the camera. However, right-clicking saves me a nice picture of the scene. The viewer for camera_pose_calibration however, shows a nice image of the IR (but it doesn't detect a checkerboard).

I have written a node that takes the IR image, and increases the contrast (multiplies everything by 256). The image now becomes visible in image_view. The image in the camera_pose_calibration is completely white, but the pattern seems to be detected. (I still get "Couldn't get measurement in interval", but I'm not sure that it is related to this problem)

Can it be that there is a conversion error somewhere? I noticed the IR image is mono16 in the messages. By multiplying it by 256 I actually shifted it by 8 bit.

Here is the callback I use to transform the image (I don't get the formatting right):

image:

 void imageCallback(const sensor_msgs::Image::ConstPtr& msg)
{
  cv_bridge::CvImagePtr cv_ptr;
  try
  {
    cv_ptr = cv_bridge::toCvCopy(msg);
    cv_ptr->image.convertTo(cv_ptr->image, -1, alpha, beta);
  }
  catch (cv_bridge::Exception& e)
  {
    ROS_ERROR("cv_bridge exception: %s", e.what());
    return;
  }
  image_pub.publish(cv_ptr->toImageMsg()); 
}

You can download the node for the workaround here and see a short explanation of it here.

Asus extrinsic calibration failing on ir image

I am trying to follow the camera_pose_calibration guidelines as in ExtrinsicCalibration for the Asus Xtion Pro Live. (Using Fuerte)

The checkerboard on the colour images are detected, but on my IR images it doesn't do anything. One thing I noticed was that if I open the IR stream in image_view, it is completely black. It stays black, even if I point a halogen lamp directly at the camera. However, right-clicking saves me a nice picture of the scene. The viewer for camera_pose_calibration however, shows a nice image of the IR (but it doesn't detect a checkerboard).

I have written a node that takes the IR image, and increases the contrast (multiplies everything by 256). The image now becomes visible in image_view. The image in the camera_pose_calibration is completely white, but the pattern seems to be detected. (I still get "Couldn't get measurement in interval", but I'm not sure that it is related to this problem)

Can it be that there is a conversion error somewhere? I noticed the IR image is mono16 in the messages. By multiplying it by 256 I actually shifted it by 8 bit.

Here is the callback I use to transform the image:

void imageCallback(const sensor_msgs::Image::ConstPtr& msg)
{
  cv_bridge::CvImagePtr cv_ptr;
  try
  {
    cv_ptr = cv_bridge::toCvCopy(msg);
    cv_ptr->image.convertTo(cv_ptr->image, -1, alpha, beta);
  }
  catch (cv_bridge::Exception& e)
  {
    ROS_ERROR("cv_bridge exception: %s", e.what());
    return;
  }
  image_pub.publish(cv_ptr->toImageMsg());  
}

You can download the node for the workaround here and see a short explanation of it here.

Asus extrinsic calibration failing on ir image

I am trying to follow the camera_pose_calibration guidelines as in ExtrinsicCalibration for the Asus Xtion Pro Live. (Using Fuerte)

The checkerboard on the colour images are detected, but on my IR images it doesn't do anything. One thing I noticed was that if I open the IR stream in image_view, it is completely black. It stays black, even if I point a halogen lamp directly at the camera. However, right-clicking saves me a nice picture of the scene. The viewer for camera_pose_calibration however, shows a nice image of the IR (but it doesn't detect a checkerboard).

I have written a node that takes the IR image, and increases the contrast (multiplies everything by 256). The image now becomes visible in image_view. The image in the camera_pose_calibration is completely white, but the pattern seems to be detected. (I still get "Couldn't get measurement in interval", but I'm not sure that it is related to this problem)

Can it be that there is a conversion error somewhere? I noticed the IR image is mono16 in the messages. By multiplying it by 256 I actually shifted it by 8 bit.

Here is the callback I use to transform the image:

void imageCallback(const sensor_msgs::Image::ConstPtr& msg)
{
  cv_bridge::CvImagePtr cv_ptr;
  try
  {
    cv_ptr = cv_bridge::toCvCopy(msg);
    cv_ptr->image.convertTo(cv_ptr->image, -1, alpha, beta);
  }
  catch (cv_bridge::Exception& e)
  {
    ROS_ERROR("cv_bridge exception: %s", e.what());
    return;
  }
  image_pub.publish(cv_ptr->toImageMsg());  
}

You can download the node for the workaround here and see a short explanation of it here.