Untitled
unknown
plain_text
4 years ago
1.1 kB
10
Indexable
import numpy as np
from skimage import io, measure
import matplotlib.pyplot as plt
import numpy as np
from skimage import io, measure
import matplotlib.pyplot as plt
from sklearn import cluster, datasets
from skimage import io,util,color
img = io.imread('trei.bmp')
plt.figure(), plt.imshow(img, cmap='gray'), plt.colorbar()
L=256
dims=np.shape(img)
H=dims[0]
W=dims[1]
Y=img[0:H,0:W]
h=np.zeros(L)
for l in range (0,H):
for c in range (0,W):
h[Y[l,c]]+=1
h=h/np.sum(h)
#transformare in binar imaginea
#img = color.rgb2gray(img)
#img = (img*255).astype(np.uint8)
#T = 120 #pt obiectele deschise
T=80 # pt obiecte inchise
epsilon = 0
h1_sum = 0
h2_sum = 0
while (epsilon > 1): #< obiecte deschide #>ob inchise
T_old = T
for i in range (T):
h1_sum += i * h[i]
for i in range (T, len(h)):
h2_sum += i * h[i]
m0 = h1_sum / (0.00000001 + np.sum(h[:T]))
m1 = h2_sum / (0.00000001 + np.sum(h[T:]))
T = 0.5 * (m0 + m1)
epsilon = abs(T - T_old)
T = np.int64(T)
print(T)
segm = img < T
plt.figure(), plt.imshow(segm, cmap = 'gray')Editor is loading...