c++ - Segment depth image with low contrast -


i trying segment hand depth image:

enter image description here

i tried watershed, region growing, grabcut, of them failed because there not clear edge. tried sharp image well, didn't give me results either.

this might not answer hoping for, might step forward bit. since provide algorithmic hints use matlab rather opencv.

since not ordinary intensity image, rather depth image, should use implied geometry of scene. key assumption can here hand resting on surface. if can estimate surface equation, can detect hand easier.

[y x] = ndgrid( linspace(-1,1,size(img,1)), linspace(-1,1,size(img,2)) ); x = [reshape(x(101:140,141:180),[],1), reshape(y(101:140,141:180),[],1), ones(1600,1)]; srf=(x\reshape(img(101:140,141:180),[],1)); %// solving least-squares 40x40 central patch   aimg = img - x*srf(1) - y*srf(2) - srf(3); %// subtracting recovered surface 

using median filter "clean" bit, , applying simple thereshold

 medfilt2(aimg,[3 3]) < -1.5 

yields

enter image description here

not hoping for, think it's step forward ;)


ps,
might find work of alpert, galun, nadler , basri detecting faint curved edges in noisy images (eccv2010) relevant problem.


Comments

Popular posts from this blog

python - pip install -U PySide error -

arrays - C++ error: a brace-enclosed initializer is not allowed here before ‘{’ token -

cytoscape.js - How to add nodes to Dagre layout with Cytoscape -