David, as Eric pointed out you aren't setting the timestamp in the image.
After creating a ROS Image with cv_bridge, you still need to fill the Image
header, like "new_msg->header = msg->header;". image_view works because it
doesn't do any synchronization.
image_proc makes some effort to detect communication issues; unfortunately
unsynchronized image and camera info topics aren't one of them yet. I've
opened ticket #3966 <
https://code.ros.org/trac/ros-pkg/ticket/3966>.
On Wed, 2010-04-07 at 15:51 -0700, David Feil-Seifer wrote:
> The purpose is to make a
> rectified image that includes all of the image (including what does
> not strictly fit into a square), not just the centermost part.
>
image_proc can already do this. The projection matrix P controls the scaling
of the undistorted image. See
cv::getOptimalNewCameraMatrix<
http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html#cv-getoptimalnewcameramatrix>and
cv::initUndistortRectifyMap a couple entries down. The
camera_calibration node has a slider you can use during calibration to
change the free scaling parameter; you can see an example in the stereo
calibration tutorial<
http://www.ros.org/wiki/camera_calibration/Tutorials/StereoCalibration#Calibration_Results>
.
Patrick