Ӱ

--secure

#pragma once #include "sgm_types.h" #include <cuda_runtime.h> #ifdef _WIN32 #ifdef STEREO_CUDA_EXPORT #define STEREO_CUDA_DLL __declspec(dllexport) #else #define STEREO_CUDA_DLL __declspec(dllimport) #endif #else #define STEREO_CUDA_DLL #endif class STEREO_CUDA_DLL StereoCuda { public: StereoCuda(); ~StereoCuda(); public: /** * \brief ��ʼ�� * \param width Ӱ��� * \param height Ӱ��� * \param min_disparity ��С�Ӳ�ֵ * \param disp_range �ӲΧ * \param sgm_option SGM���� * \param print_log �Ƿ��ӡlog��Ϣ * \return true-�ɹ� false-ʧ�� */ bool Init(sint32 width, sint32 height, sint32 min_disparity, sint32 disp_range, CuSGMOption sgm_option,bool print_log = false) const; /** * \brief ƥ�� * \param img_left ��Ӱ������ * \param img_right ��Ӱ������ * \param disp_left ������Ӳ�ͼ���ߴ���Ӱ��ߴ�һ�£���Ԥ�ȷ����ڴ� * \param disp_right ������Ӳ�ͼ���ߴ���Ӱ��ߴ�һ�£���Ԥ�ȷ����ڴ� * \param init_disp_left ��ʼ�Ӳ�ֵ���飬��Ϊnullptr���򲻲��ó�ʼ�Ӳ�ֵ * \param ste_roi_left ��Ӱ��ROI * \param ste_roi_right ��Ӱ��ROI * \return */ bool Match(uint8* img_left, uint8* img_right, float32* disp_left, float32* disp_right = nullptr, sint16* init_disp_left = nullptr, StereoROI_T* ste_roi_left = nullptr, StereoROI_T* ste_roi_right = nullptr, cudaStream_t* streams = nullptr, int stream_count = 4) const; /** * \brief ��ʼ��2 * \param width Ӱ��� * \param height Ӱ��� * \param min_disparity ��С�Ӳ�ֵ * \param disp_range �ӲΧ * \param sgm_option SGM���� * \param cam_param ������� * \param print_log �Ƿ��ӡlog��Ϣ * \return */ bool Init2(sint32 width, sint32 height, sint32 min_disparity, sint32 disp_range, CuSGMOption sgm_option, CamParam_T cam_param, bool print_log = false) const; /** * \brief ƥ��2 * \param img_left ��Ӱ������ * \param img_right ��Ӱ������ * \param depth_left ��Ӱ�����ͼ���ߴ���Ӱ��ߴ�һ�£���Ԥ�ȷ����ڴ� * \param init_disp_left ��Ӱ���ʼ�Ӳ�ֵ���飬��Ϊnullptr���򲻲��ó�ʼ�Ӳ�ֵ * \param ste_roi_left ��Ӱ��ROI * \param ste_roi_right ��Ӱ��ROI * \return true-�ɹ� false-ʧ�� */ bool Match2(uint8* img_left, uint8* img_right, float32* depth_left, sint16* init_disp_left = nullptr, StereoROI_T* ste_roi_left = nullptr, StereoROI_T* ste_roi_right = nullptr, cudaStream_t* streams = nullptr, int stream_count = 4) const; bool MatchGPU(uint8* d_img_left, uint8* d_img_right, float32* d_disp_left, size_t left_pitch, size_t right_pitch, size_t disp_pitch, float32* d_disp_right = nullptr, sint16* d_init_disp_left = nullptr, StereoROI_T* ste_roi_left = nullptr, StereoROI_T* ste_roi_right = nullptr, cudaStream_t* streams = nullptr, int stream_count = 4) const; void SetMinDisparity(const sint32& min_disparty); sint32 GetDispartyRange(); /**\brief �ͷ��ڴ� */ void Release() const; /** * \brief ��ȡ�Ӳ�ͼ��ROI�� * \param disp_ptr �Ӳ�ͼָ�� * \param width �Ӳ�ͼ�� * \param height �Ӳ�ͼ�� * \param ste_roi �����ROI���� */ static void GetRoiFromDispMap(float32* disp_ptr, sint32 width, sint32 height, StereoROI_T& ste_roi); /**\brief ��ȡ��Чֵ */ static float32 get_invad_float(); static sint16 get_invad_short(); /**\brief ��ȡ������ƥ��ģʽ�³���߲�֮������в���Ӳ�������Χ */ static sint16 get_level_range(); /**\brief �������˷�����ҳ�ڴ棨������죩 */ static bool MallocPageLockedPtr(void** ptr, size_t size); /**\brief �ͷ���������ҳ�ڴ� */ static bool FreePageLockedPtr(void* ptr); private: void* impl_; }; 注释上述代码
09-26
#include <string.h> #include <cuda_runtime.h> #include "FasterStereoCuda.h" #include "../SgmStereoCuda/cusgm_fusion.cuh" #include "../SgmStereoCuda/StereoCuda.h" #ifdef _DEBUG #pragma comment(lib,"StereoCudad.lib") #else #pragma comment(lib,"StereoCuda.lib") #endif #include "Timer.h" #include "types.h" #include "../common/trial/trial_check.h" #include <algorithm> #define USING_PAGE_LOCKED_MEMORY #ifdef _DEBUG #define DEBUG_MODE #ifdef DEBUG_MODE #include <opencv.hpp> using namespace cv; #pragma comment(lib,"opencv_world320d.lib") #endif #endif class HierSgmCudaImpl { public: HierSgmCudaImpl(); ~HierSgmCudaImpl(); typedef FasterStereoCuda::epi_ste_t epi_ste_t; typedef FasterStereoCuda::ste_opt1_t ste_opt1_t; typedef FasterStereoCuda::ste_opt2_t ste_opt2_t; public: /** * \brief Ϊ���ʹ���ṩ״̬��ʼ����������Ա�����ij�ʼֵ���ƣ��ڴ�ռ����ȣ������������ֻ�������Ӳ�ͼ * \param option ���룬�㷨���� * \return true: �ɹ� false: ʧ�� */ bool Init(const ste_opt1_t& option); /** * \brief Ϊ���ʹ���ṩ״̬��ʼ����������Ա�����ij�ʼֵ���ƣ��ڴ�ռ����� * \param option ���룬�㷨���� * \return true: �ɹ� false: ʧ�� */ bool Init2(const ste_opt2_t& option); /**\brief �ͷ�ƥ������ռ�õ���Դ���ͳ�ʼ���������Ӧ��������ʹ��ʱ���� */ void Release(); /** * \brief ִ�к������ƥ�� * \param bytes_left ���룬��Ӱ������ * \param bytes_right ���룬��Ӱ������ * \param disparity_data ������Ӳ�ͼ��������Ӳ�ͼ�ֱ�����ԭʼ�ֱ��ʱ���һ�£���Ԥ�ȷ����ڴ棬�Ӳ�ͼ�� *invalid_value*�� Ϊ��Чֵ * \return */ bool Match(const unsigned char* bytes_left, const unsigned char* bytes_right, float* disparity_data, cudaStream_t* streams, int stream_count); /** * \brief ִ�к������ƥ�� * \param bytes_left ���룬��Ӱ������ * \param bytes_right ���룬��Ӱ������ * \param depth_data ��������ͼ * \return */ bool Match2(const unsigned char* bytes_left, const unsigned char* bytes_right, float* depth_data, cudaStream_t* streams, int stream_count); bool MatchGPU(const void* d_left, const void* d_right, void* d_disparity, int left_pitch, int right_pitch, int disp_pitch, cudaStream_t* streams, int stream_count); private: const unsigned char* bytes_left_; // ��Ӱ������ const unsigned char* bytes_right_; // ��Ӱ������ unsigned char** layer_bytes_left_; // ����������Ӱ������ unsigned char** layer_bytes_right_; // ����������Ӱ������ short** layer_initial_disps_; // �洢�����������Ӳ��ʼֵ int num_layers_; // ���������� int width_; // Ӱ��� int height_; // Ӱ��� int* layer_width_; // ����������Ӱ��� int* layer_height_; // ����������Ӱ��� float** layer_disps_left_; // ���������Ӳ�����-��Ӱ�� float** layer_disps_right_; // ���������Ӳ�����-��Ӱ�� float* depth_data_; // ������� StereoCuda** vision_stereo_; // ����ƥ���� bool is_print_timing_; // �Ƿ������ʱ��־ }; 注释上述代码
09-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值