Quantcast
Channel: beginners - openFrameworks
Viewing all articles
Browse latest Browse all 4929

Rotate Texture/Facetracking/Camera picture

$
0
0

@_anna wrote:

Hey there lovely people!

I am a little bit stuck in a rut with an opencv / facetracking project and I hope that maybe one of you can help me out a little bit? That would make my day/week and month!

Here it goes:
For an installation I am using an external screen in portrait (and not landscape) view, attached is also a webcam in portrait mode. Now I am running into the problem that I have to rotate both, the camera picture, the face-tracker and the resulting image.
I tried going through past forum entries - but so far nothing has quite helped.

Maybe one of you guys and gals can help me out?

I will attach the code , even it it might be a bit lengthy.
Thank you so much for reading!
Best,
Anna

#include "ofApp.h"

using namespace ofxCv;
using namespace cv;

float smileFactor = 0;

void ofApp::setup() {
    //ofBackground(0,0,0);     background color to black
	ofSetVerticalSync(true);
	ofSetFrameRate(60);
	finder.setup("haarcascade_frontalface_default.xml");
	finder.setPreset(ObjectFinder::Fast);
	finder.getTracker().setSmoothingRate(.3);
	cam.setup(640, 480);
    sunglasses.load("Smiling_Face_Emoji_large.png");
    slightlysmiling.load("Confused_Face_Emoji_large.png");
	ofEnableAlphaBlending();
    smile.setup();
}

void ofApp::update() {
	cam.update();
	if(cam.isFrameNew()) {
        ofTexture tex = cam.getTexture();  //  ->This needs to be rotated I think
	finder.update(cam);   //  ->This needs to be rotated I think
        smile.update(cam);  //  ->This needs to be rotated I think
        if(smile.getFaceFound()){
            float cur = smile.getSmileAmount();
            graph.add(cur);
            ofLog() << graph.getNormalized(cur);
            smileFactor  = graph.getNormalized(cur);
          
        }
	}
}

void ofApp::draw() {
    ofSetColor(255);
	cam.draw(0, 0);  //  ->This needs to be rotated I think, too


	for(int i = 0; i < finder.size(); i++) {
		ofRectangle object = finder.getObjectSmoothed(i);
        
        slightlysmiling.setAnchorPercent(0.5, 0.5);
        sunglasses.setAnchorPercent(0.5, 0.5);
		float scaleAmount = 1.3 * object.width / slightlysmiling.getWidth();
		ofPushMatrix();
		ofTranslate(object.x + object.width /2., object.y + object.height * .42);
		ofScale(scaleAmount, scaleAmount);
        if (smileFactor >= 0.2){
            sunglasses.draw(0, 0);
        } else{
            slightlysmiling.draw(0, 0);}
        

    
		ofTranslate(object.getPosition());

		ofDrawBitmapStringHighlight(ofToString(finder.getLabel(i)), 0, 0);
		ofDrawLine(ofVec2f(), toOf(finder.getVelocity(i)) * 10);
		ofPopMatrix();
	}

}

void ofApp::keyPressed(int key){
    if(key == 's'){
        grabbed.setFromPixels(cam.getPixels());
        grabbed.save("test.jpg");
    }
}

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 4929

Trending Articles