summaryrefslogtreecommitdiff
path: root/gui/src
diff options
context:
space:
mode:
Diffstat (limited to 'gui/src')
-rw-r--r--gui/src/ofApp.cpp49
-rw-r--r--gui/src/ofApp.h2
2 files changed, 31 insertions, 20 deletions
diff --git a/gui/src/ofApp.cpp b/gui/src/ofApp.cpp
index 6d90c47..689048c 100644
--- a/gui/src/ofApp.cpp
+++ b/gui/src/ofApp.cpp
@@ -53,7 +53,7 @@ void ofApp::setup(){
soundStream.setup(this,0, 1, sampleRate, bufferSize, 1);
//loadSong("12 Ferric Appetite.aiff");
- loadSong("passades/1 The Ninth Set-sector1:sector2pt.1.aiff");
+ loadSong("12 Ferric Appetite.aiff");
//============================ gui
@@ -76,7 +76,11 @@ void ofApp::setup(){
chaosgui.update_sliders();
drawgui.setup("drawing","",10,0);
+
+ drawgui.add(contour_adaptive.setup("adaptive", true));
drawgui.add(contour_threshold.setup("threshold", 140, 0, 255));
+ drawgui.add(contour_adaptive_window.setup("window", 0.5, 0, 1.0));
+
drawgui.add(contour_simplify.setup("simplify", 0.8, 0.0, 10.0));
drawgui.add(contour_useColour.setup("use colour", true));
drawgui.add(laser_R.setup("red", 140, 0, 255));
@@ -110,7 +114,7 @@ void ofApp::setup(){
audiogui.add(plotter.bars.set("bars",true));
audiogui.add(plotter.mirror.set("mirror",false));
audiogui.add(plotter.width.set("point width", 2, 1, 256));
- audiogui.add(plotter.num_points.set("num points", 50, 1, 64));
+ audiogui.add(plotter.num_points.set("num points", 50, 1, 255));
audiogui.add(plotter.history_size.set("num plots", 5, 1, 64));
audiogui.add(plotter.translate.set("translate",ofVec2f(0,0),ofVec2f(-50,-50),ofVec2f(50,50)));
audiogui.add(plotter.rotate.set("rotate",0.0f,-10.0f,10.0f));
@@ -733,8 +737,12 @@ void ofApp::drawOutput(ofEventArgs & args){
grayImage.clear();
}
grayImage=colorImg;
- //grayImage.threshold(contour_threshold);
- grayImage.adaptiveThreshold(grayImage.getWidth()/8, contour_threshold,false,true);
+ if(contour_adaptive){
+ grayImage.adaptiveThreshold(grayImage.getWidth()*contour_adaptive_window, contour_threshold,false,true);
+ }
+ else {
+ grayImage.threshold(contour_threshold);
+ }
contourFinder.findContours(grayImage, 20, (grayImage.getWidth()*grayImage.getHeight())/3, 10, true);
for (int i = 0; i < contourFinder.nBlobs; i++){
colourPolyline shape;
@@ -832,24 +840,25 @@ void ofApp::drawOutput(ofEventArgs & args){
vector <colourPolyline> clippedOutput;
if (mask.size()&&use_mask){
- clipper.Clear();
- clipper.addPolylines(mask, ClipperLib::ptClip);
- vector <ofPolyline> shapes; //TODO make clipper clip colourpolylines
+
for (auto& poly: transformedOutput)
- {
+ {
+ clipper.Clear();
+ clipper.addPolylines(mask, ClipperLib::ptClip);
+ vector <ofPolyline> shapes; //TODO make clipper clip colourpolylines
shapes.push_back(poly);
- }
- clipper.addPolylines(shapes,ClipperLib::ptSubject);
- vector <ofPolyline> clipped;
- if (invert_mask){
- clipped = clipper.getClippedLines(ClipperLib::ctDifference);
- }else {
- clipped = clipper.getClippedLines(ClipperLib::ctIntersection);
- }
- for (auto& clip: clipped)
- {
- clip.simplify(contour_simplify);
- clippedOutput.push_back(colourPolyline(clip,ofColor(laser_R,laser_G,laser_B)));
+ clipper.addPolylines(shapes,ClipperLib::ptSubject);
+ vector <ofPolyline> clipped;
+ if (invert_mask){
+ clipped = clipper.getClippedLines(ClipperLib::ctDifference);
+ }else {
+ clipped = clipper.getClippedLines(ClipperLib::ctIntersection);
+ }
+ for (auto& clip: clipped)
+ {
+ clip.simplify(contour_simplify);
+ clippedOutput.push_back(colourPolyline(clip,poly.getColourAt(0)));
+ }
}
}
else {
diff --git a/gui/src/ofApp.h b/gui/src/ofApp.h
index 9098bef..838b7f8 100644
--- a/gui/src/ofApp.h
+++ b/gui/src/ofApp.h
@@ -181,7 +181,9 @@ class ofApp: public ofBaseApp, public ofxMidiListener {
ofxPanel drawgui;
+ ofxToggle contour_adaptive;
ofxIntSlider contour_threshold;
+ ofxFloatSlider contour_adaptive_window;
ofxFloatSlider contour_simplify;
ofxToggle contour_useColour;
ofxIntSlider laser_R;