00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00021 #ifndef CUDA_WATERSHED_H
00022 #define CUDA_WATERSHED_H
00023 
00024 #include "Watershed.h"
00025 
00026 template <typename GROUP_T, typename IMAGE_T>
00027 bool init_gpu(state_t<GROUP_T, IMAGE_T>& state, int* eq_and_lower, watershed_gpu_state_t<GROUP_T, IMAGE_T>& gpu_state,
00028               unsigned int w, unsigned int h, unsigned int d);
00029 
00030 template <class GROUP_T, typename IMAGE_T>
00031 bool init_gpu_on_device(watershed_gpu_state_t<GROUP_T, IMAGE_T> &gpu_state, 
00032                         IMAGE_T* image, int imageongpu, 
00033                         unsigned int w, unsigned int h, unsigned int d);
00034  
00035 template <typename GROUP_T, typename IMAGE_T>
00036 void destroy_gpu(watershed_gpu_state_t<GROUP_T, IMAGE_T>& gpu_state);
00037 
00038 template <typename GROUP_T, typename IMAGE_T>
00039 void update_cuda(watershed_gpu_state_t<GROUP_T, IMAGE_T>& gpu_state, GROUP_T* segments_d);
00040 
00041 void guassian3D_gpu();
00042 
00043 #endif