c++ - Segment depth image with low contrast -
i trying segment hand depth image:
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
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
Post a Comment