cv_detection.h
Go to the documentation of this file.
00001 /*
00002 * Software License Agreement (BSD License)
00003 *Copyright (c) 2015, micROS Team
00004  http://micros.nudt.edu.cn/
00005 *All rights reserved.
00006 * Copyright (c) 2009, Willow Garage, Inc.
00007 * All rights reserved.
00008 *
00009 * Redistribution and use in source and binary forms, with or without
00010 * modification, are permitted provided that the following conditions
00011 * are met:
00012 *
00013 * * Redistributions of source code must retain the above copyright
00014 * notice, this list of conditions and the following disclaimer.
00015 * * Redistributions in binary form must reproduce the above
00016 * copyright notice, this list of conditions and the following
00017 * disclaimer in the documentation and/or other materials provided
00018 * with the distribution.
00019 * * Neither the name of Willow Garage, Inc. nor the names of its
00020 * contributors may be used to endorse or promote products derived
00021 * from this software without specific prior written permission.
00022 *
00023 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00024 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00025 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00026 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00027 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00028 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00029 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00030 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00031 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00032 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00033 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00034 * POSSIBILITY OF SUCH DAMAGE.
00035 */
00036 
00037 #include <iostream>
00038 #include <ros/ros.h>
00039 #include <opencv2/highgui/highgui.hpp>
00040 #include <opencv2/core/core.hpp>
00041 #include <opencv2/opencv.hpp>
00042 #include <opencv/cv.h>  
00043 #include <opencv/cvaux.h>
00044 #include <opencv/cxcore.h>
00045 #include <sensor_msgs/Image.h>
00046 #include <geometry_msgs/PoseStamped.h>
00047 #include <geometry_msgs/Pose2D.h>
00048 #include <image_transport/image_transport.h>
00049 
00050 
00051 using namespace std;
00052 using namespace cv;
00053 
00054 class DetectionCV
00055 {
00056   ros::Publisher image_object_pub_;
00057 
00058   image_transport::ImageTransport it_;
00059   image_transport::Subscriber camera_sub_;
00060 
00061   ros::Subscriber object_pridict_sub_;
00062   
00063   CvPoint object;
00064   
00065 public:
00066   DetectionCV(ros::NodeHandle& nh_);
00067   ~DetectionCV(void);
00068   
00069 protected:
00070   int p_initial_x;
00071   int p_initial_y;
00072   int p_initial_r;  
00073 private:
00074   void object_detection(const sensor_msgs::ImageConstPtr& msg);
00075   double Sum(IplImage *srcImg,int nrow,int ncol);
00076   void ShowIndex(int row,int col,IplImage *srcImg);
00077   void ImageConvert(IplImage *srcImg,int nrow,int ncol);
00078   void sdf2circle(IplImage* Phi_0,int nrow,int ncol,int Next_X,int Next_Y,int r,CvSize ImgSize);
00079   void Heaviside(IplImage* phi,double epsilon,IplImage* H);
00080   void Delta(IplImage* phi,double epsilon,IplImage* Delta_h);
00081   void NeumannBoundCond(IplImage* phi);
00082   double binaryfit_C1(IplImage* Img,IplImage* H_phi,int nrow,int ncol);
00083   double binaryfit_C2(IplImage* Img,IplImage* H_phi,int nrow,int ncol);
00084   void EVOL_CV(IplImage* I,IplImage* phi,double nu,double lambda_1,double lambda_2,double timestep,double epsilon,int numIter);
00085   void ImageProcess_1(IplImage* phi,int nrow,int ncol);
00086   void PlanePoint(IplImage* ProcessImg_1,IplImage* SImg,int nrow,int ncol,CvPoint &PlanePoint);
00087   void CV_Detect(IplImage* UNImg,CvPoint &Plane);
00088  
00089 };


micros_cv_detection
Author(s): Dengqing Tang
autogenerated on Thu Jun 6 2019 21:36:21