44 DiagnosticNodelet::onInit();
45 srv_ = boost::make_shared<dynamic_reconfigure::Server<Config> > (*pnh_);
46 dynamic_reconfigure::Server<Config>::CallbackType
f =
48 srv_->setCallback (f);
49 pub_ = advertise<sensor_msgs::Image>(*pnh_,
"output", 1);
50 pub_masked_ = advertise<sensor_msgs::Image>(*pnh_,
"output/mask", 1);
51 pub_var_ = advertise<std_msgs::Float64>(*pnh_,
"output/var", 1);
64 cv::Mat image, gray, laplacian_image;
65 sensor_msgs::Image::Ptr mask_img_msg;
66 cv::Scalar
mean, stddev;
67 std_msgs::Float64 var_msg;
69 vital_checker_ -> poke();
72 cv::cvtColor(image, gray, cv::COLOR_RGB2GRAY);
73 cv::Laplacian(gray, laplacian_image, CV_64F);
74 cv::meanStdDev(laplacian_image,
mean, stddev, cv::Mat());
75 var = stddev.val[0] * stddev.val[0];
77 cv::Mat masked_image = cv::Mat::zeros(laplacian_image.rows, laplacian_image.cols, CV_8UC1);
78 laplacian_image.convertTo(laplacian_image, CV_8UC1, 1.0);
79 cv::threshold(cv::abs(laplacian_image), masked_image,
threshold_, 255, cv::THRESH_BINARY);