37 #include <boost/assign.hpp> 38 #include <opencv2/imgproc/imgproc.hpp> 46 DiagnosticNodelet::onInit();
47 pub_ = advertise<sensor_msgs::Image>(*
pnh_,
"output", 1);
68 ROS_ERROR(
"Image Channel(%s) %d is less than parameter channel (%d)",
69 msg->encoding.c_str(),
74 cv::Mat color_image = cv::Mat(float_image.rows, float_image.cols, CV_8UC3);
76 if (
channel_ != 0 || numchannels > 1) {
77 std::vector<cv::Mat> planes;
78 cv::split(float_image, planes);
84 cv::minMaxLoc(float_image, &min_value, &max_value);
86 for (
size_t j = 0; j < float_image.rows; j++) {
87 for (
size_t i = 0; i < float_image.cols; i++) {
88 float v = float_image.at<
float>(j, i);
90 color_image.at<cv::Vec3b>(j, i) = cv::Vec3b(0, 0, 0);
94 color_image.at<cv::Vec3b>(j, i) = cv::Vec3b(c.r * 255, c.g * 255, c.b * 255);
CvImageConstPtr toCvShare(const sensor_msgs::ImageConstPtr &source, const std::string &encoding=std::string())
void publish(const boost::shared_ptr< M > &message) const
std::vector< std::string > V_string
virtual void unsubscribe()
static int numChannels(const std::string &encoding)
virtual void colorize(const sensor_msgs::Image::ConstPtr &msg)
PLUGINLIB_EXPORT_CLASS(jsk_perception::ColorizeFloatImage, nodelet::Nodelet)
sensor_msgs::ImagePtr toImageMsg() const