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


#1

안녕하세요. 최근에 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;

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

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


#3

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


#4

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


#5

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


#6

@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:


#7

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


#8

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


#9

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


#10

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