import cv2
import matplotlib.pyplot as plt
from skimage import io,color,img_as_ubyte,data
from skimage.filters import threshold_otsu
from skimage.measure import label,regionprops
import numpy as np
image=data.coins()
if image.ndim==3:
    gray=color.rgb2gray(image)
else:
    gray=image
gray=cv2.resize(gray,(256,256))
gray=img_as_ubyte(gray)
denoised=cv2.GaussianBlur(gray,(5,5),0)
contrast=cv2.equalizeHist(denoised)
from skimage.morphology import closing,square
thresh=threshold_otsu(contrast)
binary=closing(contrast>thresh,square(3))
labeled=label(binary)
regions=regionprops(labeled)
plt.figure(figsize=(15,5))

plt.imshow(gray,cmap='gray')
plt.title('Original')
plt.show()

plt.imshow(contrast,cmap='gray')
plt.title('preprocessed')
plt.show()

plt.imshow(binary,cmap='gray')
plt.title('segmented')
plt.show()

plt.imshow(labeled,cmap='gray')
plt.title('detected')
plt.show()
