src
roi_to_mask_image.cpp
Go to the documentation of this file.
1
// -*- mode: c++ -*-
2
/*********************************************************************
3
* Software License Agreement (BSD License)
4
*
5
* Copyright (c) 2015, JSK Lab
6
* All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* * Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* * Redistributions in binary form must reproduce the above
15
* copyright notice, this list of conditions and the following
16
* disclaimer in the documentation and/or other materials provided
17
* with the distribution.
18
* * Neither the name of the JSK Lab nor the names of its
19
* contributors may be used to endorse or promote products derived
20
* from this software without specific prior written permission.
21
*
22
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
* POSSIBILITY OF SUCH DAMAGE.
34
*********************************************************************/
35
36
#include "
jsk_perception/roi_to_mask_image.h
"
37
#include <boost/assign.hpp>
38
#include <jsk_topic_tools/log_utils.h>
39
#if ( CV_MAJOR_VERSION >= 4)
40
#include <opencv2/imgproc/imgproc_c.h>
41
#endif
42
43
namespace
jsk_perception
44
{
45
void
ROIToMaskImage::onInit
()
46
{
47
DiagnosticNodelet::onInit();
48
pub_
= advertise<sensor_msgs::Image>(
49
*pnh_,
"output"
, 1);
50
onInitPostProcess();
51
}
52
53
void
ROIToMaskImage::subscribe
()
54
{
55
sub_
= pnh_->subscribe(
"input"
, 1, &
ROIToMaskImage::convert
,
this
);
56
ros::V_string
names = boost::assign::list_of(
"~input"
);
57
jsk_topic_tools::warnNoRemap(names);
58
}
59
60
void
ROIToMaskImage::unsubscribe
()
61
{
62
sub_
.
shutdown
();
63
}
64
65
void
ROIToMaskImage::convert
(
66
const
sensor_msgs::CameraInfo::ConstPtr& info_msg)
67
{
68
cv::Mat mask_image = cv::Mat::zeros(
info_msg
->height,
69
info_msg
->width,
70
CV_8UC1);
71
cv::Rect rect(
info_msg
->roi.x_offset,
72
info_msg
->roi.y_offset,
73
info_msg
->roi.width,
74
info_msg
->roi.height);
75
cv::rectangle(mask_image, rect, cv::Scalar(255), CV_FILLED);
76
pub_
.
publish
(
cv_bridge::CvImage
(
77
info_msg
->header,
78
sensor_msgs::image_encodings::MONO8
,
79
mask_image).
toImageMsg
());
80
}
81
}
82
83
#include <
pluginlib/class_list_macros.h
>
84
PLUGINLIB_EXPORT_CLASS
(
jsk_perception::ROIToMaskImage
,
nodelet::Nodelet
);
roi_to_mask_image.h
cv_bridge::CvImage::toImageMsg
sensor_msgs::ImagePtr toImageMsg() const
PLUGINLIB_EXPORT_CLASS
PLUGINLIB_EXPORT_CLASS(jsk_perception::ROIToMaskImage, nodelet::Nodelet)
jsk_perception::ROIToMaskImage::subscribe
virtual void subscribe()
Definition:
roi_to_mask_image.cpp:85
ros::Subscriber::shutdown
void shutdown()
ros::Publisher::publish
void publish(const boost::shared_ptr< M > &message) const
class_list_macros.h
jsk_perception
Definition:
add_mask_image.h:48
nodelet::Nodelet
sensor_msgs::image_encodings::MONO8
const std::string MONO8
jsk_perception::ROIToMaskImage::sub_
ros::Subscriber sub_
Definition:
roi_to_mask_image.h:125
jsk_perception::ROIToMaskImage::convert
virtual void convert(const sensor_msgs::CameraInfo::ConstPtr &info_msg)
Definition:
roi_to_mask_image.cpp:97
cv_bridge::CvImage
jsk_perception::ROIToMaskImage::onInit
virtual void onInit()
Definition:
roi_to_mask_image.cpp:77
jsk_perception::ROIToMaskImage::pub_
ros::Publisher pub_
Definition:
roi_to_mask_image.h:124
ros::V_string
std::vector< std::string > V_string
jsk_perception::ROIToMaskImage::unsubscribe
virtual void unsubscribe()
Definition:
roi_to_mask_image.cpp:92
jsk_perception::ROIToMaskImage
Definition:
roi_to_mask_image.h:81
info_msg
info_msg
jsk_perception
Author(s): Manabu Saito, Ryohei Ueda
autogenerated on Fri May 16 2025 03:11:17