diff options
| author | Tim Redfern <tim@getdrop.com> | 2018-01-24 23:40:49 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@getdrop.com> | 2018-01-24 23:40:49 +0000 |
| commit | 404746784ce6ef2b87c396a12451947fee28b244 (patch) | |
| tree | b6217e1087993588d19fd6d51e24997d67ee2d4e /drawing/src | |
| parent | 60b2973637d6150f3facb74eb9ae1d475071b915 (diff) | |
colourPolyline
Diffstat (limited to 'drawing/src')
| -rw-r--r-- | drawing/src/colourPolyline.cpp | 21 | ||||
| -rw-r--r-- | drawing/src/colourPolyline.h | 18 | ||||
| -rw-r--r-- | drawing/src/ofApp.cpp | 11 | ||||
| -rw-r--r-- | drawing/src/ofApp.h | 2 |
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{ |
