Go to the documentation of this file.
    2 #include <jsk_topic_tools/log_utils.h> 
    3 #include <sensor_msgs/Image.h> 
    4 #include <sensor_msgs/PointCloud2.h> 
    8 #include "jsk_perception/WhiteBalance.h" 
    9 #include "jsk_perception/WhiteBalancePoints.h" 
   41     if (pnh.
hasParam(
"parameter_matrix")) {
 
   43       pnh.
getParam(
"parameter_matrix", param_val);
 
   46         for ( 
int i = 0; 
i < 48; 
i++) {
 
   50       for ( 
int i = 0; 
i < 12; 
i++ ) {
 
   62                      jsk_perception::WhiteBalance::Response &res) {
 
   69                       jsk_perception::WhiteBalancePoints::Response &res) {
 
   73     for (
size_t i = 0; 
i < 
req.input.fields.size(); 
i++) {
 
   74       if ( 
req.input.fields[
i].name == 
"rgb" ) {
 
   75         rgb_offset = 
req.input.fields[
i].offset;
 
   81     if ( rgb_offset < 0 ) {
 
   82       ROS_WARN(
"point cloud didn't have rgb field");
 
   86     res.output = 
req.input;
 
   87     int size = 
req.input.height * 
req.input.width;
 
   88     int step = 
req.input.point_step;
 
   89     unsigned char *sdata = (
unsigned char *) &(
req.input.data[0]);
 
   90     unsigned char *ddata = (
unsigned char *) &(res.output.data[0]);
 
   92     for(
int i = 0; 
i < size; 
i++, sdata += 
step, ddata += 
step) {
 
   98       rgb.
Red = (
unsigned char)
r;
 
   99       rgb.
Green = (
unsigned char)g;
 
  100       rgb.
Blue = (
unsigned char)b;
 
  101       *((
float *)(ddata + rgb_offset)) = rgb.
float_value;
 
  116     if(
r > 255) 
r = 255; 
if (
r < 0) 
r = 0;
 
  117     if(g > 255) g = 255; 
if (g < 0) g = 0;
 
  118     if(b > 255) b = 255; 
if (b < 0) b = 0;
 
  122     for(
int i = 0; 
i < 12; 
i++) {
 
  124         ( 
pmat[4*
i + 0] * refr ) +
 
  125         ( 
pmat[4*
i + 1] * refg ) +
 
  126         ( 
pmat[4*
i + 2] * refb ) +
 
  134     mat(0,0) = 
cmat[0]; mat(0,1) = 
cmat[1]; mat(0,2) = 
cmat[2];  mat(0,3) = 
cmat[3];
 
  135     mat(1,0) = 
cmat[4]; mat(1,1) = 
cmat[5]; mat(1,2) = 
cmat[6];  mat(1,3) = 
cmat[7];
 
  136     mat(2,0) = 
cmat[8]; mat(2,1) = 
cmat[9]; mat(2,2) = 
cmat[10]; mat(2,3) = 
cmat[11];
 
  137     mat(3,0) = 0.0;     mat(3,1) = 0.0;     mat(3,2) = 0.0;      mat(3,3) = 1.0;
 
  139     Eigen::Matrix4d imat = mat.inverse();
 
  140     cmat[0] = imat(0, 0); 
cmat[1] = imat(0, 1); 
cmat[2]  = imat(0, 2); 
cmat[3]  = imat(0, 3);
 
  141     cmat[4] = imat(1, 0); 
cmat[5] = imat(1, 1); 
cmat[6]  = imat(1, 2); 
cmat[7]  = imat(1, 3);
 
  142     cmat[8] = imat(2, 0); 
cmat[9] = imat(2, 1); 
cmat[10] = imat(2, 2); 
cmat[11] = imat(2, 3);
 
  150 int main (
int argc, 
char** argv)
 
  
ROSCPP_DECL void init(const M_string &remappings, const std::string &name, uint32_t options=0)
bool getParam(const std::string &key, bool &b) const
bool pointsCallback(jsk_perception::WhiteBalancePoints::Request &req, jsk_perception::WhiteBalancePoints::Response &res)
ServiceServer advertiseService(AdvertiseServiceOptions &ops)
ros::ServiceServer service_img_
std::string resolveName(const std::string &name, bool remap=true) const
ros::ServiceServer service_pts_
int main(int argc, char **argv)
ROS_INFO ROS_ERROR int pointer * argv
bool hasParam(const std::string &key) const
void makeConvertMatrix(float refr, float refg, float refb)
const Type & getType() const
void convertColor(int &r, int &g, int &b)
bool imageCallback(jsk_perception::WhiteBalance::Request &req, jsk_perception::WhiteBalance::Response &res)
jsk_perception
Author(s): Manabu Saito, Ryohei Ueda 
autogenerated on Fri May 16 2025 03:11:17