ofxOpenCvDnnSegmentation is an realtime segmentation addon for openframeworks, which uses opencv dnn modules.
OpenCV v.3.3.1 or upper includes some dnn modules in their own package. Therefore I designed ofxOpenCvDnnSegmentation with OpenCV v.3.3.1 or upper version. It works with ENET or FCN network.
See Examples for more details. You can find how to get each class detected segmentation with ofPolyline.
void setup()
{
ofImage img;
img.load(ofToDataPath("sample.jpg"));
segmentation.setup(ofToDataPath("dnn/enet-model-best.net"),ofToDataPath("dnn/classlist.txt"));
segmentation.update(img.getPixels());
}
void draw()
{
ofBackground(0);
segmentation.draw(0,0,ofGetWidth(), ofGetHeight());
}
$ git clone https://github.com/TetsuakiBaba/ofxOpenCvDnnSegmentation.git
$ curl -O http://tetsuakibaba.jp/tmp/opencv2.framework.zip
$ unzip opencv2.framework.zip
Or you may build your own opencv.framework from opencv source. ( https://tetsuakibaba.jp/ws/doku.php?id=opencv_dnn:opencv2.framework )
$ sh getModels.sh