Skip to content

Commit

Permalink
added example
Browse files Browse the repository at this point in the history
  • Loading branch information
orgicus committed Apr 2, 2014
1 parent 655ddac commit 54f76b6
Show file tree
Hide file tree
Showing 8 changed files with 371 additions and 0 deletions.
7 changes: 7 additions & 0 deletions example-ofxCvPiCamSimple/.gitignore
@@ -0,0 +1,7 @@
libs
obj
*.app
*/bin/*
!*/bin/data
*._*
*2013*.jpg
13 changes: 13 additions & 0 deletions example-ofxCvPiCamSimple/Makefile
@@ -0,0 +1,13 @@
# Attempt to load a config.make file.
# If none is found, project defaults in config.project.make will be used.
ifneq ($(wildcard config.make),)
include config.make
endif

# make sure the the OF_ROOT location is defined
ifndef OF_ROOT
OF_ROOT=../../..
endif

# call the project makefile!
include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk
4 changes: 4 additions & 0 deletions example-ofxCvPiCamSimple/addons.make
@@ -0,0 +1,4 @@

ofxOpenCv
ofxCv
ofxCvPiCam
142 changes: 142 additions & 0 deletions example-ofxCvPiCamSimple/config.make
@@ -0,0 +1,142 @@
################################################################################
# CONFIGURE PROJECT MAKEFILE (optional)
# This file is where we make project specific configurations.
################################################################################

################################################################################
# OF ROOT
# The location of your root openFrameworks installation
# (default) OF_ROOT = ../../..
################################################################################
# OF_ROOT = ../../..

################################################################################
# PROJECT ROOT
# The location of the project - a starting place for searching for files
# (default) PROJECT_ROOT = . (this directory)
#
################################################################################
# PROJECT_ROOT = .

################################################################################
# PROJECT SPECIFIC CHECKS
# This is a project defined section to create internal makefile flags to
# conditionally enable or disable the addition of various features within
# this makefile. For instance, if you want to make changes based on whether
# GTK is installed, one might test that here and create a variable to check.
################################################################################
# None

################################################################################
# PROJECT EXTERNAL SOURCE PATHS
# These are fully qualified paths that are not within the PROJECT_ROOT folder.
# Like source folders in the PROJECT_ROOT, these paths are subject to
# exlclusion via the PROJECT_EXLCUSIONS list.
#
# (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank)
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_EXTERNAL_SOURCE_PATHS =

################################################################################
# PROJECT EXCLUSIONS
# These makefiles assume that all folders in your current project directory
# and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations
# to look for source code. The any folders or files that match any of the
# items in the PROJECT_EXCLUSIONS list below will be ignored.
#
# Each item in the PROJECT_EXCLUSIONS list will be treated as a complete
# string unless teh user adds a wildcard (%) operator to match subdirectories.
# GNU make only allows one wildcard for matching. The second wildcard (%) is
# treated literally.
#
# (default) PROJECT_EXCLUSIONS = (blank)
#
# Will automatically exclude the following:
#
# $(PROJECT_ROOT)/bin%
# $(PROJECT_ROOT)/obj%
# $(PROJECT_ROOT)/%.xcodeproj
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_EXCLUSIONS =

################################################################################
# PROJECT LINKER FLAGS
# These flags will be sent to the linker when compiling the executable.
#
# (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################

# Currently, shared libraries that are needed are copied to the
# $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to
# add a runtime path to search for those shared libraries, since they aren't
# incorporated directly into the final executable application binary.
# TODO: should this be a default setting?
# PROJECT_LDFLAGS=-Wl,-rpath=./libs

################################################################################
# PROJECT DEFINES
# Create a space-delimited list of DEFINES. The list will be converted into
# CFLAGS with the "-D" flag later in the makefile.
#
# (default) PROJECT_DEFINES = (blank)
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_DEFINES =

################################################################################
# PROJECT CFLAGS
# This is a list of fully qualified CFLAGS required when compiling for this
# project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS
# defined in your platform specific core configuration files. These flags are
# presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below.
#
# (default) PROJECT_CFLAGS = (blank)
#
# Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in
# your platform specific configuration file will be applied by default and
# further flags here may not be needed.
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_CFLAGS =

################################################################################
# PROJECT OPTIMIZATION CFLAGS
# These are lists of CFLAGS that are target-specific. While any flags could
# be conditionally added, they are usually limited to optimization flags.
# These flags are added BEFORE the PROJECT_CFLAGS.
#
# PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets.
#
# (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank)
#
# PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets.
#
# (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank)
#
# Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the
# PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration
# file will be applied by default and further optimization flags here may not
# be needed.
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_OPTIMIZATION_CFLAGS_RELEASE =
# PROJECT_OPTIMIZATION_CFLAGS_DEBUG =

################################################################################
# PROJECT COMPILERS
# Custom compilers can be set for CC and CXX
# (default) PROJECT_CXX = (blank)
# (default) PROJECT_CC = (blank)
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_CXX =
# PROJECT_CC =
81 changes: 81 additions & 0 deletions example-ofxCvPiCamSimple/src/ConsoleListener.h
@@ -0,0 +1,81 @@
#pragma once

#include "ofMain.h"

class SSHKeyListenerEventData
{
public:
SSHKeyListenerEventData(char character_)
{
character = character_;
}
char character;
};

class SSHKeyListener
{
public:
virtual void onCharacterReceived(SSHKeyListenerEventData& e) = 0;
};

class ConsoleListener: public ofThread
{
public:
SSHKeyListener* listener;
ConsoleListener()
{
listener = NULL;
}
void setup(SSHKeyListener* listener_)
{
listener = listener_;
}
void threadedFunction()
{
while (isThreadRunning())
{
char buffer[10];
while(fgets(buffer, 10 , stdin) != NULL)
{
//ofLogVerbose() << buffer;
SSHKeyListenerEventData eventData(buffer[0]);
listener->onCharacterReceived(eventData);
}
}
}

};



#if 0
USAGE:

1.add to testApp.h

#include "ConsoleListener.h"

//extend testApp
class testApp : public ofBaseApp, public SSHKeyListener

2. add required callback definition

void onCharacterReceived(SSHKeyListenerEventData& e);


3. add to testApp.cpp

void testApp::onCharacterReceived(SSHKeyListenerEventData& e)
{
keyPressed((int)e.character);
}

4. and later
void testApp::keyPressed (int key){

if (key == 'e')
{
ofLogVerbose() << "e pressed!";
}
}
#endif
10 changes: 10 additions & 0 deletions example-ofxCvPiCamSimple/src/main.cpp
@@ -0,0 +1,10 @@
#include "ofMain.h"
#include "testApp.h"
//========================================================================
int main( ){

ofSetLogLevel(OF_LOG_VERBOSE);
ofSetupOpenGL(1280,720, OF_WINDOW); // <-------- setup the GL context
ofRunApp( new testApp());

}
82 changes: 82 additions & 0 deletions example-ofxCvPiCamSimple/src/testApp.cpp
@@ -0,0 +1,82 @@
#include "testApp.h"
#include <opencv2/opencv.hpp>

using namespace ofxCv;
using namespace cv;

Mat frame,frameProcessed;

void testApp::onCharacterReceived(SSHKeyListenerEventData& e)
{
keyPressed((int)e.character);
}
//--------------------------------------------------------------
void testApp::setup(){
consoleListener.setup(this);
consoleListener.startThread(false, false);

cam.setup(320,240,false);//setup camera (w,h,color = true,gray = false);
thresh = 127;
}

//--------------------------------------------------------------
void testApp::update(){
frame = cam.grab();
}

//--------------------------------------------------------------
void testApp::draw(){
if(!frame.empty()) {
threshold(frame,frameProcessed,thresh,255,0);
drawMat(frame,0,0);
drawMat(frameProcessed,320,0);
}
ofDrawBitmapString("threshold: " + ofToString(thresh),320,10);
}

//--------------------------------------------------------------
void testApp::keyPressed (int key){
ofLogVerbose() << "keyPressed: " << key;
if(key == 't' && thresh > 0) thresh--;
if(key == 'T' && thresh < 255) thresh++;
}

//--------------------------------------------------------------
void testApp::keyReleased(int key){

}

//--------------------------------------------------------------
void testApp::mouseMoved(int x, int y ){

}

//--------------------------------------------------------------
void testApp::mouseDragged(int x, int y, int button){
thresh = ofMap(x,0,ofGetWidth(),0,255);
}

//--------------------------------------------------------------
void testApp::mousePressed(int x, int y, int button){

}

//--------------------------------------------------------------
void testApp::mouseReleased(int x, int y, int button){

}

//--------------------------------------------------------------
void testApp::windowResized(int w, int h){

}

//--------------------------------------------------------------
void testApp::gotMessage(ofMessage msg){

}

//--------------------------------------------------------------
void testApp::dragEvent(ofDragInfo dragInfo){

}
32 changes: 32 additions & 0 deletions example-ofxCvPiCamSimple/src/testApp.h
@@ -0,0 +1,32 @@
#pragma once

#include "ofMain.h"
#include "ofxCv.h"
#include "ofxCvPiCam.h"
#include "ConsoleListener.h"


class testApp : public ofBaseApp, public SSHKeyListener{

public:

void setup();
void update();
void draw();

void keyPressed(int key);
void keyReleased(int key);
void mouseMoved(int x, int y );
void mouseDragged(int x, int y, int button);
void mousePressed(int x, int y, int button);
void mouseReleased(int x, int y, int button);
void windowResized(int w, int h);
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);

int thresh;
ofxCvPiCam cam;
ConsoleListener consoleListener;
void onCharacterReceived(SSHKeyListenerEventData& e);
};

0 comments on commit 54f76b6

Please sign in to comment.