MATLAB: Image Edge Detection Question

image processingImage Processing Toolbox

Hello guys, I am currently struggling with my senior project. The main problem is that i could not define the edge of a pile of rocks and dusts, neither could i estimate how many rocks are there in that pile. I have made a GUI to use the camera capture pictures and then input whichever picture we want to use,into the functions, to do the estimation. It looks like the only thing left is to 1. Get the edge of the piles 2. Find out 'the number of rock area pixels over the pile area pixels'. 3. Show the percentage using a bar on the GUI. Its really a shame of me to put this request…I hope you could understand that i have been working on this for a really long time. The picture is like belows: http://tinypic.com/r/5u0cop/6 As you may see some rocks and dusts have the same color as the background does. I have used imopen,manual threshold and regionprops functions and they dont work well on this picture. If someone would like to help me. I would definitely like to pay for his time… Thank you for your patience reading this and hopefully i may receive your reply. Happy Matlab!

Best Answer

It looks like there is a virtually infinite number of rocks there in a range from a few millimeters down to nanometer size or even smaller. It's not clear where you distinguish between rocks, gravel, sand, and dust. You could say virtually anything and who could argue with you? If they do, they'd have to have some trusted method, like size filtering via a sieve. But there is no way to find rocks that are inside the pile. Do you have any "ground truth" for any images like these?
Related Question