18 #ifndef PIC_GL_FILTERING_FILTER_CHANNEL_HPP 19 #define PIC_GL_FILTERING_FILTER_CHANNEL_HPP 21 #include "../../base.hpp" 22 #include "../../util/math.hpp" 23 #include "../../gl/filtering/filter.hpp" 40 uniform sampler2D u_tex; \n
46 ivec2 coords = ivec2(gl_FragCoord.xy); \n
47 vec4 color = texelFetch(u_tex, coords, 0); \n
49 f_color = vec4(v, v, v, 1.0); \n
102 width = imgIn[0]->width;
103 height = imgIn[0]->height;
105 frames = imgIn[0]->frames;
128 for(
auto i = 0; i < imgIn.
size(); i += 3) {
129 imgIn.
data[i ] = 1.0f;
130 imgIn.
data[i + 1] = 0.5f;
131 imgIn.
data[i + 2] = 0.25f;
146 outR->
Write(
"channel_R.bmp");
148 outG->
Write(
"channel_G.bmp");
150 outB->
Write(
"channel_B.bmp");
void initShaders()
initShaders
Definition: filter_channel.hpp:36
TechniqueGL technique
Definition: display.hpp:45
float * data
data is the main buffer where pixel values are stored.
Definition: filter_radial_basis_function.hpp:91
static ImageGL * execute(ImageGL *imgIn, ImageGL *imgOut, int channel=0)
execute
Definition: filter_channel.hpp:115
GLuint generateTextureGL(GLenum target, GLenum format_type, bool mipmap)
generateTextureGL
void bind()
bind
Definition: display.hpp:189
~FilterGLChannel()
Definition: filter_channel.hpp:71
#define MAKE_STRING(input_string)
int channel
Definition: filter_channel.hpp:57
PIC_INLINE ImageGLVec SingleGL(ImageGL *img)
SingleGL creates a single for filters input.
Definition: image_vec.hpp:39
void update(int channel)
update
Definition: filter_channel.hpp:80
static void Test()
Test.
Definition: filter_channel.hpp:124
The ImageGL class.
Definition: image.hpp:42
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
int size() const
size computes the number of values.
Definition: filter_radial_basis_function.hpp:481
virtual ImageGL * Process(ImageGLVec imgIn, ImageGL *imgOut)
Process.
Definition: display.hpp:258
The FilterGL class.
Definition: filter.hpp:35
bool initStandard(std::string version_number, std::string vertex_shader_source, std::string fragment_shader_source, std::string name)
initStandard
Definition: display.hpp:114
void OutputSize(ImageGLVec imgIn, int &width, int &height, int &channels, int &frames)
OutputSize.
Definition: filter_channel.hpp:100
void unbind()
unbind
Definition: display.hpp:197
void loadToMemory()
loadToMemory
std::string vertex_source
Definition: display.hpp:57
Definition: bilateral_separation.hpp:25
#define CLAMP(x, a)
Definition: math.hpp:77
bool isValid()
Definition: display.hpp:62
std::string fragment_source
Definition: display.hpp:57
The FilterGLChannel class.
Definition: filter_channel.hpp:30
std::vector< ImageGL * > ImageGLVec
ImageGLVec an std::vector of pic::ImageGL.
Definition: image_vec.hpp:32
void release()
release
Definition: display.hpp:85
void setUniform1i(const char *name_uniform, int value0)
SetUniform.
Definition: display.hpp:236
FilterGLChannel(int channel)
FilterGLChannel.
Definition: filter_channel.hpp:65