화면에서 Kinect Camera를 Fullscreen으로 출력하기

안녕하세요. 최근에 Openframeworks를 배우고 있는 학생입니다~
Ofxkinect와 OpenCV, Box2d를 이용한 예제를 배우고 있는 도중에 막히는 부분이 있어서 질문드립니다.

키넥트 카메라를 화면에 풀스크린으로 출력하고 싶었습니다.
아래는 App.h 디스플레이 설정입니다

//display mode
int f_screen;
bool debug;
ofParameter<bool> doFullScreen;
void setFullScreen(bool& _value) { ofSetFullscreen( _value);}
float scale, offsetX, offsetY;

이 아래는 App.cpp의 키 입력 설정입니다.

//display mode
    case 'f': ofToggleFullscreen();
        f_screen = f_screen*-1;
        break;

하지만 화면 출력이 카메라까지 늘려져서 풀스크린으로 되지 않고 윈도우 창만 풀스크린이 되더라구요…

다른 예제를 찾아서( 풀스크린 기능이 있는) 해결해 보려 하였지만 초보여서 막히는 부분이 많습니다.
조금의 도움이라도 주시면 감사하겠습니다.

키넥트 어느 버젼 쓰시나요? v1은 최대 출력 사이즈가 640480이라 fullscreen을 써도 그 이상으로는 출력이 안 되더라고요. v2는 19201080까지 가능한 걸로 알고 있습니다…

1 Like

그냥 화면만 늘리는 것이라면
kinect.draw( x, y, width, height);
에서 width와 height 를 변경 해보시는 방법이 있겠네요.
openCV 의 모든 것들도 함께 늘려야 겠지만요,…

1 Like

@jeonghopark 님 말씀처럼 kinect를 그려낼때 강제로 늘려서 그리는 방법밖에 없겠네요.
ofScale같은걸 써도 될것 같구요. 비율이 꺠지지 않게 신경쓰는 것도 잊지 마세요

1 Like

@jeonghopark @icq4ever 두 분 말씀하신대로 늘리는 방법 밖에는 없을 것 같아요.
저는 이럴 때 두가지 방법을 쓰는데,

아래와 같이 그렸는데 늘린다고 하면,

    ofSetColor(255, 0, 0); 
    ofDrawRectangle(0,0,400,300);

1.ofScale 이용

void ofApp::draw(){
    ofScale(2, 2);
    ofPushMatrix();
    ofSetColor(255, 0, 0); 
    ofDrawRectangle(0,0,400,300);
    ofPopMatrix();
}

2.ofFbo 이용
ofApp.h

#include "ofMain.h"
class ofApp : public ofBaseApp{
    public:
    void setup();
    void update();
    void draw();
    
    ofFbo fbo;
}

ofApp.cpp

void ofApp::setup(){
    fbo.allocate(400, 300);
}


void ofApp::draw(){
    fbo.begin();
    ofSetColor(255, 0, 0);
    ofDrawRectangle(0,0,400,300);
    fbo.end();
    fbo.draw(0,0,800,600);
}

요런식으로 자주 씁니다. :grin:

1 Like

키넥트 v1을 사용중 입니다!
늘려도 억지로 늘리는 것이겠지요 ㅠㅠ

처음에 그냥 늘렸다가 openCV는 안늘어서 따로 노는 문제가 발생했었어요

강제로 늘리는 방법을 쓰려고 합니다! 키넥트 v2는 사용해 본적이 없어서요

와!!!:heart_eyes: 상세한 설명 감사드립니다!:grinning: 감동!!