18 #ifndef PIC_GL_FILTERING_FILTER_BILATERAL_2DG_HPP 19 #define PIC_GL_FILTERING_FILTER_BILATERAL_2DG_HPP 21 #include "../../base.hpp" 23 #include "../../gl/filtering/filter.hpp" 24 #include "../../gl/filtering/filter_slicer.hpp" 25 #include "../../gl/filtering/filter_scatter.hpp" 26 #include "../../gl/filtering/filter_gaussian_3d.hpp" 76 printf(
"Bilateral 2DG Filter on GPU time: %f ms\n",
77 double(timeVal) / 1000000.0);
85 Image tmp_imgIn(nameIn);
90 ImageGL imgIn(&tmp_imgIn,
true);
105 for(
int i = 0; i < testing; i++) {
133 imgOut->
Write(nameOut);
158 if(imgIn[0] == NULL || imgIn.size() > 1) {
The FilterGLScatter class implement the bilateral grid approximation of the bilateral filter...
Definition: filter_scatter.hpp:32
The FilterGLBilateral2DG class.
Definition: filter_bilateral_2dg.hpp:33
The FilterGLScatter class implement the bilateral grid approximation of the bilateral filter...
Definition: display.hpp:32
GLuint generateTextureGL(GLenum target, GLenum format_type, bool mipmap)
generateTextureGL
FilterGLGaussian3D * gauss3D
Definition: filter_bilateral_2dg.hpp:39
ImageGL * allocateSimilarOneGL()
allocateSimilarOneGL
Definition: image.hpp:848
GLuint glBeginTimeQuery()
glBeginTimeQuery
Definition: timings.hpp:29
float s_S
Definition: filter_bilateral_2dg.hpp:36
static ImageGL * execute(ImageGL *imgIn, float sigma_s, float sigma_r)
execute
Definition: filter_bilateral_2dg.hpp:69
ImageGL * gridGL
Definition: filter_bilateral_2dg.hpp:40
ImageGL * Process(ImageGLVec imgIn, ImageGL *imgOut)
Process.
PIC_INLINE ImageGLVec SingleGL(ImageGL *img)
SingleGL creates a single for filters input.
Definition: image_vec.hpp:39
ImageGL * Process(ImageGLVec imgIn, ImageGL *imgOut)
Process.
Definition: filter_npasses.hpp:323
GLuint64 glEndTimeQuery(GLuint64 ret)
glEndTimeQuery
Definition: timings.hpp:46
The ImageGL class.
Definition: image.hpp:42
FilterGLSlicer * slicer
Definition: filter_bilateral_2dg.hpp:43
bool Write(std::string nameFile, LDR_type typeWrite, int writerCounter)
Write saves an Image into a file on the disk.
Definition: filter_radial_basis_function.hpp:1924
The FilterGLSlicer class.
Definition: filter_slicer.hpp:30
ImageGL * Process(ImageGLVec imgIn, ImageGL *imgOut)
Process.
float s_R
Definition: filter_bilateral_2dg.hpp:36
ImageGL * gridBlurGL
Definition: filter_bilateral_2dg.hpp:40
virtual ImageGL * Process(ImageGLVec imgIn, ImageGL *imgOut)
Process.
Definition: display.hpp:258
FilterGLBilateral2DG(float sigma_s, float sigma_r)
FilterGLBilateral2DG.
The FilterGL class.
Definition: filter.hpp:35
Definition: display.hpp:30
float sigma_s
Definition: filter_bilateral_2dg.hpp:36
FilterGLScatter * scatter
Definition: filter_bilateral_2dg.hpp:38
std::string genBilString(std::string type, float sigma_s, float sigma_r)
genBilString
Definition: string.hpp:366
The FilterGL class.
Definition: display.hpp:35
#define PIC_INLINE
Definition: base.hpp:33
The ImageGL class.
Definition: display.hpp:42
float sigma_r
Definition: filter_bilateral_2dg.hpp:36
int width
Definition: filter_radial_basis_function.hpp:80
The Image class stores an image as buffer of float.
Definition: image.hpp:60
void loadToMemory()
loadToMemory
The FilterGLSlicer class.
Definition: display.hpp:30
PIC_INLINE ImageGLVec DoubleGL(ImageGL *img1, ImageGL *img2)
DoubleGL creates a couple for filters input.
Definition: image_vec.hpp:52
Definition: bilateral_separation.hpp:25
std::vector< ImageGL * > ImageGLVec
ImageGLVec an std::vector of pic::ImageGL.
Definition: display.hpp:32
Definition: filter_gaussian_3d.hpp:30
float * getMaxVal(BBox *box, float *ret)
getMaxVal computes the maximum value for the current Image.
static ImageGL * execute(std::string nameIn, std::string nameOut, float sigma_s, float sigma_r, int testing=1)
Definition: filter_bilateral_2dg.hpp:82
std::vector< ImageGL * > ImageGLVec
ImageGLVec an std::vector of pic::ImageGL.
Definition: image_vec.hpp:32
int height
Definition: filter_radial_basis_function.hpp:80