| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #ifndef IMAGE_PROCESS_H
- #define IMAGE_PROCESS_H
- #include "sp_image.h"
- #include <glm/glm.hpp>
- struct cv_stream_guard {
- cv_stream_guard();
- ~cv_stream_guard();
- cv::cuda::Stream &cv_stream();
- };
- size_t normal_height_to_nv12(size_t height);
- size_t nv12_height_to_normal(size_t height);
- cv::Size normal_size_to_nv12(cv::Size size);
- cv::Size nv12_size_to_normal(cv::Size size);
- sp_image nv12_luma_view(const sp_image& img);
- sp_image nv12_chrome_view(const sp_image& img);
- sp_image image_debayer(const sp_image &img); // TODO: add an option for bayer type
- void image_resize(const sp_image &src, sp_image &dst);
- sp_image image_resize(const sp_image &img, cv::Size size);
- sp_image image_flip_y(const sp_image &img);
- sp_image image_rgb_to_bgr(const sp_image &img);
- sp_image image_rgb_to_bgra(const sp_image &img);
- sp_image image_rgb_to_gray(const sp_image &img);
- sp_image image_rgb_to_nv12(const sp_image &img);
- sp_image image_nv12_to_rgb(const sp_image &img);
- sp_image image_yuyv_to_rgb(const sp_image &img);
- sp_image image_warp_affine(const sp_image &img, const glm::mat3 &matrix);
- sp_image image_rotate(const sp_image &img, float angle, std::optional<glm::vec2> center);
- sp_image image_translate(const sp_image &img, glm::vec2 offset);
- using image_stereo_pair = std::tuple<sp_image, sp_image>;
- image_stereo_pair image_stereo_split(const sp_image &img);
- image_stereo_pair image_stereo_split_view(const sp_image &img);
- sp_image image_stereo_combine(const sp_image &left, const sp_image &right);
- void image_save_jpg(const sp_image &img, const std::string &filename); // filename without extension
- void image_save_png(const sp_image &img, const std::string &filename);
- #include <core_v2/object_manager.h>
- class image_output_helper {
- public:
- struct create_config {
- obj_name_type in_name, out_name;
- cv::Size size;
- bool flip_y = false;
- };
- explicit image_output_helper(create_config conf);
- ~image_output_helper();
- private:
- struct impl;
- std::unique_ptr<impl> pimpl;
- };
- class stereo_output_helper {
- public:
- struct create_config {
- obj_name_type left_name, right_name;
- obj_name_type out_name;
- cv::Size size; // if empty(), will be determined from input
- bool halve_width = false;
- bool flip_y = false;
- };
- explicit stereo_output_helper(create_config conf);
- ~stereo_output_helper();
- private:
- struct impl;
- std::unique_ptr<impl> pimpl;
- };
- #endif //IMAGE_PROCESS_H
|