// Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #pragma once #include #include #include #ifdef _WIN32 #include #include #else // Linux/Unix #include #include #include #include #include #endif #include #include #include #include #include "include/paddlex/results.h" #ifdef _WIN32 #define OS_PATH_SEP "\\" #else #define OS_PATH_SEP "/" #endif namespace PaddleX { /* * @brief * Generate visualization colormap for each class * * @param number of class * @return color map, the size of vector is 3 * num_class * */ std::vector GenerateColorMap(int num_class); /* * @brief * Visualize the detection result * * @param img: initial image matrix * @param results: the detection result * @param labels: label map * @param colormap: visualization color map * @return visualized image matrix * */ cv::Mat Visualize(const cv::Mat& img, const DetResult& results, const std::map& labels, const std::vector& colormap, float threshold = 0.5); /* * @brief * Visualize the segmentation result * * @param img: initial image matrix * @param results: the detection result * @param labels: label map * @param colormap: visualization color map * @return visualized image matrix * */ cv::Mat Visualize(const cv::Mat& img, const SegResult& result, const std::map& labels, const std::vector& colormap); /* * @brief * generate save path for visualized image matrix * * @param save_dir: directory for saving visualized image matrix * @param file_path: sourcen image file path * @return path of saving visualized result * */ std::string generate_save_path(const std::string& save_dir, const std::string& file_path); } // namespace PaddleX