Opencv-structured-forest or Fast-edge-detection (Android onPreviewFrame) too slow
I am using Java wrapper class to do this feature by opencv extra modules(Ximgproc) . this is the code below,
Mat resizeMat = /* frames from android camera */ ;
StructuredEdgeDetection pDollar = createStructuredEdgeDetection("path_of_model.yml.gz");
Mat src = new Mat();
resizeMat.convertTo(src, CV_32F, 1.0 / 255.0);
Mat edges = new Mat(src.size(), src.type());
pDollar.detectEdges(src, edges);
Mat output = new Mat();
edges.convertTo(output, CV_8UC1, 255.0);
Imgproc.findContours(output, contours, new Mat(),Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE);
It's getting too slow to process for each frame (900 - 1000 ms) referred link in stack-overflow
Blockquote
Are you re-creating the structured edge detection object every time? Move that to a variable and construct it once.
Are you including the contours in your time? How about all those conversions? How much time is spent in the edge detection and how much is in the other processing?
structured edge detection object moved to global variable , still i am facing the same,
normally when i try to use grey conversion,blur,canny,morph operations algorithm simultaneously it performs faster(0.4 - 0.5) secs but I need accuracy so I moved to SED
Well, that may just be how long it takes. I can't say I've benchmarked it, but since it's more accurate, it probably takes longer.
Do you have a particular reason for saying it takes too long? Or is it just too long for what you need?