Ejemplo n.º 1
0
void CmSaliencyGC::ViewValues(vecD &vals, CStr &ext)
{
	int K = _NUM;
	Mat_<Vec3f> color3f(1, K);
	Mat_<double> weight1d(1, K), cov1d(1, K);
	for (int i = 0; i < K; i++)	{
		color3f(0, i) = _gmm.getMean(i);
		weight1d(0, i) = vals[i];
		cov1d(0, i) = sqrt(_gmm.GetGaussians()[i].det);
	}
	//CmShow::HistBins(color3f, weight1d, _nameNE + ext, false, cov1d);
}
Ejemplo n.º 2
0
void CmColorQua::Show(CMat &counts1d, CStr title, Mat &show3f, int method)
{
	int n = binNum[method];
	CV_Assert(method >= 0 && method < S_Q_NUM && counts1d.size() == Size(n, 1));
	Mat color3f(1, n, CV_32FC3);
	Vec3f* colors = (Vec3f*)(color3f.data);
	for (int i = 0; i < n; i++)	{
		switch (method)	{
		case 0: SR_BGR(i, colors[i]); break;
		case 1: SR_HSV(i, colors[i]); break;
		case 2: SR_Lab(i, colors[i]); break;
		}
	}
	switch (method)	{
	case 1: cvtColor(color3f, color3f, CV_HSV2BGR); break;
	case 2: cvtColor(color3f, color3f, CV_Lab2BGR); break;
	}
	//CmShow::HistBins(color3f, counts1d, title);
}
Ejemplo n.º 3
0
Archivo: main.cpp Proyecto: r-lyeh/eve
int main() {

    if( !setupgl() ) {
        return 1;
    }

    // 
    mesh<solid_cube> vao[100];

    for( auto &v : vao ) {
        int r = 10 + (rand() % 245);
        int g = 10 + (rand() % 245);
        int b = 10 + (rand() % 245);
        v.data.setup( color3f(r/255.f,g/255.f,b/255.f) );
        v.tf.position = glm::vec3((r-127)/10,(g-127)/10,(b-127)/10);
        v.tf.update();
    }

    postfx fx( width, height );

    // :( 
    //fx.passes.push_back( new Pass("FxaaPass", "FxaaPass.fs" ) );
    //fx.passes.push_back( new Pass("LensPass", "LensPass.fs" ) );
    //fx.passes.push_back( new Pass("ScanlinesPass", "ScanlinesPass.fs" ) );
    //fx.passes.push_back( new Pass("GrainPass", "GrainPass.fs" ) );
    //fx.passes.push_back( new Pass("ToonPass", "ToonPass.fs", "ToonPass.vs" ) ); // no idea
    //fx.passes.push_back( new Pass("VignettePass", "VignettePass.fs" ) ); // gl_FragCoord
    //fx.passes.push_back( new Pass("PostPass", "PostPass.fs" ) ); // gl_FragCoord
    //fx.passes.push_back( new Pass("BarrelPass", "BarrelPass.fs" ) );
    //fx.passes.push_back( new Pass("BumpMappingUnparametrized", "BumpMappingUnparametrized.fs" ) );
    //fx.passes.push_back( new Pass("CRTPass", "CRTPass.fs" ) );
    //fx.passes.push_back( new Pass("DirtyOldTvPass", "DirtyOldTvPass.fs" ) );
    //fx.passes.push_back( new Pass("LensPass", "LensPass.fs" ) );
    //fx.passes.push_back( new Pass("SSAO2Pass", "SSAO2Pass.fs" ) );
    //fx.passes.push_back( new Pass("VCRPass", "VCRPass.fs" ) );
    // } 

    // :) {
    fx.passes.push_back( new Pass("BleachBypassPass", "BleachBypassPass.fs" ) );
    fx.passes.push_back( new Pass("ContrastPass", "ContrastPass.fs" ) );
    fx.passes.push_back( new Pass("DofAltPass", "DofAltPass.fs" ) );
    fx.passes.push_back( new Pass("DofPass", "DofPass.fs" ) );
    fx.passes.push_back( new Pass("EdgePass", "EdgePass.fs" ) );
    fx.passes.push_back( new Pass("FXAA3Pass", "FXAA3Pass.fs" ) );
    fx.passes.push_back( new Pass("HorizontalTiltShifPass", "HorizontalTiltShifPass.fs" ) );
    fx.passes.push_back( new Pass("KaleidoscopePass", "KaleidoscopePass.fs" ) );
    fx.passes.push_back( new Pass("LimbDarkeningPass", "LimbDarkeningPass.fs" ) );   
    fx.passes.push_back( new Pass("NoiseWarpPass", "NoiseWarpPass.fs" ) ); // :?
    fx.passes.push_back( new Pass("PixelatePass", "PixelatePass.fs" ) );
    fx.passes.push_back( new Pass("RGBShiftPass", "RGBShiftPass.fs" ) );
    fx.passes.push_back( new Pass("SSAOPass", "SSAOPass.fs" ) );
    fx.passes.push_back( new Pass("VerticalTiltShifPass", "VerticalTiltShifPass.fs" ) );
    fx.passes.push_back( new Pass("ZoomBlurPass", "ZoomBlurPass.fs" ) );
    // }

//:? fx.passes.push_back( new Pass("RimHighlightingPass", "RimHighlightingPass.fs", "RimHighlightingPass.vs" ) );
//:? fx.passes.push_back( new Pass("BloomPass", "2BloomPass.fs" ) );
//:? fx.passes.push_back( new Pass("ConvolutionPass", "2ConvolutionPass.fs" ) );
//:? fx.passes.push_back( new Pass("FakeSSSPass", "2FakeSSSPass.fs" ) );
//:? fx.passes.push_back( new Pass("GodRaysPass", "2GodRaysPass.fs" ) );
//:? fx.passes.push_back( new Pass("LUTPass", "2LUTPass.fs" ) );

    for( auto &pass : fx.passes ) {
        pass->enabled = false;
    }
    
    ::camera camera;

    bool enabled = false;
    bool keys[256] = {0};
    while( pollgl() ) {

        if(!eve::lock(60.f))
            continue;

        glfwSetWindowTitle(window, ( std::to_string(eve::get_fps()) + fx.list('/') ).c_str() );

        // get the time in seconds
        float t = glfwGetTime();

        // toggle fxaa on/off with space
#define KEY(X,CH,NUM) \
        if(glfwGetKey(window, X) && !keys[CH] && NUM < fx.passes.size() ) fx.passes[NUM]->enabled ^= true; \
        keys[CH] = glfwGetKey(window, X); 

        KEY(GLFW_KEY_1,'1',0);
        KEY(GLFW_KEY_2,'2',1);
        KEY(GLFW_KEY_3,'3',2);
        KEY(GLFW_KEY_4,'4',3);
        KEY(GLFW_KEY_5,'5',4);
        KEY(GLFW_KEY_6,'6',5);
        KEY(GLFW_KEY_7,'7',6);
        KEY(GLFW_KEY_8,'8',7);
        KEY(GLFW_KEY_9,'9',8);
        KEY(GLFW_KEY_0,'0',9);
        KEY(GLFW_KEY_Q,'q',10);
        KEY(GLFW_KEY_W,'w',11);
        KEY(GLFW_KEY_E,'e',12);
        KEY(GLFW_KEY_R,'r',13);
        KEY(GLFW_KEY_T,'t',14);
        KEY(GLFW_KEY_Y,'y',15);
        KEY(GLFW_KEY_U,'u',16);
        KEY(GLFW_KEY_I,'i',17);
        KEY(GLFW_KEY_O,'o',18);
        KEY(GLFW_KEY_P,'p',19);

        // update camera and set the uniform
        float sin_t = glm::radians(90.0f)*sin(t/10);
        camera.position = glm::vec3(0.0f, 0.0f, -1.0f);
        camera.rotation = glm::vec3( sin_t, 0, sin_t );
        camera.update();

        fx.process( [&]{
            // clear first
            glEnable(GL_DEPTH_TEST);
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

            // bind and draw the vao
            for( auto &v : vao ) {
                v.draw(camera);           
            }
        });

        // check for errors
        GLenum error = glGetError();
        if(error != GL_NO_ERROR) {
            std::cerr << "GLError:" << error << std::endl;
            break;
        }

        // finally swap buffers
        swapgl();
    }

    quitgl();
    return 0;
}