1

For an image analysis problem I'm trying to separate 11 unique, partly overlapping, coins and output an image with the coins separated and displayed in 11 different colors. I've done a Hough Circle Detection and found the individual circles.enter image description here

Now I want to separate the overlapping coins and give all the coins an unique color. I already have a code where the different coins gets a different color + a unique number but a intermediate step is necessary. Im supposed to use scikit-image and not cv2.

The code for the coloring is:

from skimage.measure import label, regionprops
from skimage.morphology import remove_small_objects
from skimage.color import label2rgb
from skimage import filters
import math

im = image_where_coins_are_separated
im = im.astype(float)
im = im-im.min()
im = im/im.max()
block_size = 201
imbw1 = im > filters.threshold_local(im, block_size, method = 'mean')

imbw1 = remove_small_objects(imbw1, 1000, connectivity=1)

# connect the components 
label_img = label(imbw1)
image_label_overlay = label2rgb(label_img, image=im, bg_label = 0)

regions = regionprops(label_img)

plt.figure(figsize=(8,8))
plt.imshow(image_label_overlay, cmap=plt.cm.gray)

for (i, props) in zip(range(len(regions)), regions):  
    y1, x1 = props.centroid
    plt.text(x1, y1,(i + 1),color='w')
    
plt.axis('off') 

To conclude, I'm looking for a line of code that provides the separation of overlapping coins after Hough Circle Detection and makes it usable for the code above. The output should be a display of all the 11 coins with 11 different colors and counts from 1 - 11.

  • 1
    use a watershed algorithm. this example shows a problem almost identical to yours: separating overlapping coins https://docs.opencv.org/4.x/d3/db4/tutorial_py_watershed.html –  Mar 25 '22 at 13:09

0 Answers0