Attention: Answers.ros.org is deprecated as of August the 11th, 2023. Please visit robotics.stackexchange.com to ask a new question. This site will remain online in read-only mode during the transition and into the foreseeable future. Selected questions and answers have been migrated, and redirects have been put in place to direct users to the corresponding questions on Robotics Stack Exchange. Additional details are available here.
Yes. There is even a package, cv_bridge that converts between sensor_msgs/Image and cv::Mat.
The auto-generated API documentation is quite excellent for the C++ API. In general, I think the C++ API has less of a learning curve than the C API.
Most (if not all) of the C++ functions are wrapped. However, I ran into quite a few functions In OpenCV 2.2 and 2.3 that were completely broken. It's possible that things have improved in OpenCV 2.4.