00001 /* 00002 * Software License Agreement (BSD License) 00003 * 00004 * Copyright (c) 2013, Intelligent Robotics Lab, DLUT. 00005 * Author: Qinghua Li, Yan Zhuang, Fei Yan 00006 * 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 Intelligent Robotics Lab, DLUT. nor the names 00020 * of its contributors may be used to endorse or promote products 00021 * derived 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 /* 00038 * Brief interface for bearing-angle(BA) image 00039 * The class is used as an interface to generate bearing-angle(BA) image, 00040 * and do some necessary transformation. 00041 * 00042 * Created on: 2012.01.07 00043 * Author: Qinghua Li (qinghua__li@163.com) 00044 */ 00045 00046 #ifndef BEARING_ANGLE_IMAGE_H_ 00047 #define BEARING_ANGLE_IMAGE_H_ 00048 00049 #include <cmath> 00050 #include <vector> 00051 #include <QImage> 00052 #include <opencv/cv.h> 00053 #include <pcl/io/pcd_io.h> 00054 #include <pcl/point_types.h> 00055 00056 const double PI = 3.14159265358979323846; 00057 00058 class BearingAngleImage 00059 { 00060 public: 00061 BearingAngleImage (); 00062 ~BearingAngleImage (); 00063 00064 public: 00065 double getAngle (const pcl::PointXYZ &point1, const pcl::PointXYZ &point2); 00066 00067 double getGray (double theta); 00068 00069 IplImage* generateBAImage (std::vector< std::vector<pcl::PointXYZ> > &points, int width, int height); 00070 00071 IplImage* getChannelsImage (IplImage* ipl_image); 00072 00073 QImage cvIplImage2QImage (IplImage* ipl_image); 00074 00075 IplImage* BA_image; 00076 IplImage* channels_image; 00077 }; 00078 00079 #endif // BEARING_ANGLE_IMAGE_H_