Today I read a paper about automatically counting trees from satellite image, that makes me remember the coin-counting example from image processing class which I took many years ago.
I put some coins on the back of the mouse pad, snap a photo with the web camera.
img2 = Binarize[img]
img3 = ArrayPlot[MorphologicalComponents[img2]]
Now let’s do the counting.
cd = Tally[Flatten[MorphologicalComponents[img2]]]
{{0, 162643}, {1, 7600}, {2, 7633}, {3, 7369}, {4, 4309}, {5,
7679}, {6, 5868}, {7, 5883}, {8, 4082}}
(* pick the image region which is possible for the coins *)
cd2 = Select[cd[[All, 2]], # > 500 && # < 10000 &]
ListPlot[cd2, PlotStyle -> {PointSize[Large]}]
Clearly, there are three different groups of coins
Total[Map[Length, Sort[FindClusters[cd2]]] {5, 10, 25}]
130
Using $xxxx Mathematica to counting coins is kind of stupid itself, however, there are plenty of engineering applications actually do the very similar things in more complex situations.
No comments:
Post a Comment