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 . 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::getOptimalNewCameraMatrixand 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 . Patrick