Woo this looks like a fun hot topic.
While we are enjoying machine learning, how about a “simpler” approach.
Here is an example using k-means clustering that worked pretty well for me…
- Create ROIs for each tooth to get the mean Red Green and Blue Values
- Use these to create a table with the centroid values
3, With that (reusable) table, we can then apply the clustering on the image to get the cluster number
With this approach, it seems that the fake tooth is closer to C3 and the real tooth seems closer to D2
I used the excellent k-means implementation from the IJ-Plugins Toolkit
You can find attached the table that I built by hand.
To test it yourself.
teeth_rgb_centroids.zip (409 Bytes - It is just a CSV but the forum won’t let me post it directly)
- Make sure that the IJ-Plugins toolkit is installed - Unfortunately they are old-school and do not have an update site yet (or am I wrong?)
- Open the attached table
- Open your image
- Run the Plugins > Segmentation > k-means Clustering Reapply…
- Select the name of the table and select the image.
- On the resulting ‘Clusters’ image use the Glasbey Inverted Lookup Table, which helps you see the clusters a little bit better using Image > Lookup Tables
I join all my colleagues in that you can maybe improve the acquisition but if you happen to have the x-rite passport, then that’s already awesome!
Hope this helps.