Compression.h
Go to the documentation of this file.
00001 /*
00002 Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
00003 All rights reserved.
00004 
00005 Redistribution and use in source and binary forms, with or without
00006 modification, are permitted provided that the following conditions are met:
00007     * Redistributions of source code must retain the above copyright
00008       notice, this list of conditions and the following disclaimer.
00009     * Redistributions in binary form must reproduce the above copyright
00010       notice, this list of conditions and the following disclaimer in the
00011       documentation and/or other materials provided with the distribution.
00012     * Neither the name of the Universite de Sherbrooke nor the
00013       names of its contributors may be used to endorse or promote products
00014       derived from this software without specific prior written permission.
00015 
00016 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00017 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00018 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00019 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
00020 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00021 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00022 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00023 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00024 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00025 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00026 */
00027 
00028 #ifndef COMPRESSION_H_
00029 #define COMPRESSION_H_
00030 
00031 #include "rtabmap/core/RtabmapExp.h" // DLL export/import defines
00032 
00033 #include <rtabmap/utilite/UThread.h>
00034 #include <opencv2/opencv.hpp>
00035 
00036 namespace rtabmap {
00037 
00055 class RTABMAP_EXP CompressionThread : public UThread
00056 {
00057 public:
00058         // format : ".png" ".jpg" "" (empty is general)
00059         CompressionThread(const cv::Mat & mat, const std::string & format = "");
00060         CompressionThread(const cv::Mat & bytes, bool isImage);
00061         const cv::Mat & getCompressedData() const {return compressedData_;}
00062         cv::Mat & getUncompressedData() {return uncompressedData_;}
00063 protected:
00064         virtual void mainLoop();
00065 private:
00066         cv::Mat compressedData_;
00067         cv::Mat uncompressedData_;
00068         std::string format_;
00069         bool image_;
00070         bool compressMode_;
00071 };
00072 
00073 std::vector<unsigned char> RTABMAP_EXP compressImage(const cv::Mat & image, const std::string & format = ".png");
00074 cv::Mat RTABMAP_EXP compressImage2(const cv::Mat & image, const std::string & format = ".png");
00075 
00076 cv::Mat RTABMAP_EXP uncompressImage(const cv::Mat & bytes);
00077 cv::Mat RTABMAP_EXP uncompressImage(const std::vector<unsigned char> & bytes);
00078 
00079 std::vector<unsigned char> RTABMAP_EXP compressData(const cv::Mat & data);
00080 cv::Mat RTABMAP_EXP compressData2(const cv::Mat & data);
00081 
00082 cv::Mat RTABMAP_EXP uncompressData(const cv::Mat & bytes);
00083 cv::Mat RTABMAP_EXP uncompressData(const std::vector<unsigned char> & bytes);
00084 cv::Mat RTABMAP_EXP uncompressData(const unsigned char * bytes, unsigned long size);
00085 
00086 } /* namespace rtabmap */
00087 #endif /* COMPRESSION_H_ */


rtabmap
Author(s): Mathieu Labbe
autogenerated on Sat Jul 23 2016 11:44:15