summaryrefslogtreecommitdiff
path: root/drawing
diff options
context:
space:
mode:
Diffstat (limited to 'drawing')
-rw-r--r--drawing/src/colourPolyline.cpp21
-rw-r--r--drawing/src/colourPolyline.h18
-rw-r--r--drawing/src/ofApp.cpp11
-rw-r--r--drawing/src/ofApp.h2
4 files changed, 48 insertions, 4 deletions
diff --git a/drawing/src/colourPolyline.cpp b/drawing/src/colourPolyline.cpp
new file mode 100644
index 0000000..810488d
--- /dev/null
+++ b/drawing/src/colourPolyline.cpp
@@ -0,0 +1,21 @@
+#include "colourPolyline.h"
+
+void colourPolyline::addVertex( const ofPoint& p , const ofColor& c){
+ ofPolyline::addVertex( p );
+ pointColours.push_back( c );
+}
+
+void colourPolyline::addVertex( const ofPoint& p ){
+ addVertex( p , ofColor(255,255,255));
+}
+
+void colourPolyline::draw(){
+ for (int i=0;i<ofPolyline::size()-1;i++){
+ ofSetColor(pointColours[i]);
+ ofPolyline l;
+ l.addVertex(ofPolyline::operator[](i));
+ l.addVertex(ofPolyline::operator[](i+1));
+ l.draw();
+ //todo - cache
+ }
+}
diff --git a/drawing/src/colourPolyline.h b/drawing/src/colourPolyline.h
new file mode 100644
index 0000000..2dc3872
--- /dev/null
+++ b/drawing/src/colourPolyline.h
@@ -0,0 +1,18 @@
+#pragma once
+#include "ofPolyline.h"
+#include "ofMain.h"
+
+class colourPolyline: public ofPolyline {
+ public:
+
+ void addVertex( const ofPoint& p );
+
+ void addVertex( const ofPoint& p , const ofColor& c);
+
+ void draw();
+
+ private:
+
+ vector <ofColor> pointColours;
+
+}; \ No newline at end of file
diff --git a/drawing/src/ofApp.cpp b/drawing/src/ofApp.cpp
index 8928df6..d110414 100644
--- a/drawing/src/ofApp.cpp
+++ b/drawing/src/ofApp.cpp
@@ -241,22 +241,25 @@ void ofApp::draw(){
}
case 7: {
movie.update();
+ ofPoint scale=ofPoint(ofGetWidth()/movie.getWidth(),ofGetHeight()/movie.getHeight());
if (movie.isFrameNew()){
colorImg.setFromPixels(movie.getPixels());
grayImage = colorImg;
grayImage.threshold(threshold);
contourFinder.findContours(grayImage, 20, (340*240)/3, 10, true);
}
- vector <ofPolyline> shapes;
+ vector <colourPolyline> shapes;
for (int i = 0; i < contourFinder.nBlobs; i++){
- ofPolyline shape;
+ colourPolyline shape;
for (auto& point:contourFinder.blobs[i].pts){
- shape.addVertex(point);
+ ofVec3f p=point*scale;
+ ofColor c=colorImg.getPixels().getColor(point.x,point.y);
+ shape.addVertex(p,c);
}
shapes.push_back(shape);
segmentsdrawn++;
pointsdrawn+=shape.size();
- contourFinder.blobs[i].draw(0,0);
+ shape.draw();
}
break;
}
diff --git a/drawing/src/ofApp.h b/drawing/src/ofApp.h
index a6f03a6..1667334 100644
--- a/drawing/src/ofApp.h
+++ b/drawing/src/ofApp.h
@@ -7,6 +7,8 @@
#include "ofxSyphon.h"
#include "ofxOpenCv.h"
+#include "colourPolyline.h"
+
class ofApp : public ofBaseApp{