У меня есть интересная серия изображений роста клеток, и моя компания пытается программно количественно определить, сколько в чашке содержит клетки, а сколько нет.
Я включил изображение ниже в качестве примера.Любая закрытая область - это рост клеток, а любая другая не черная область - нет.
Я пробовал несколько разных фильтров и алгоритм заливки для поиска между областями роста клеток, но, имея небольшой опыт в обработке изображений, не добился большого успеха.Вот код, который я собрал из интернета, чтобы подсчитать количество черных пикселей.Тем не менее, это так медленно, я думаю, что лучше спросить вас.
image = Image.open("Images/24Hour/HB15_2.jpg")
image = image.getdata()
def is_black_enough(pixel):
r, g, b = pixel
return r < 10 and g < 10 and b < 10
w, h = np.asarray(image).shape
black_pixels = 0
for pixel in image:
if is_black_enough(pixel)==True:
black_pixels+=1
print(black_pixels)
black_pixels/(w*h)
![enter image description here](https://i.stack.imgur.com/mx4uA.png)
РЕДАКТИРОВАТЬ
Я гуглилвокруг и удалось пару вещей.Во-первых, у меня есть эффективный калькулятор черных пикселей.Во-вторых, у меня есть начальный калькулятор областей роста клеток.Кто-нибудь знает, как рассчитать вложенные желтые границы ниже или иметь другое решение полностью?
img = Image.open("Images/24Hour/HB15_2.jpg")
img = img.convert('L')
img = np.asarray(img)
img = 1 * (img < 130) * (img > 90)
m,n = img.shape
plt.figure(figsize=(20,10))
plt.imshow(img)
![enter image description here](https://i.stack.imgur.com/UIYoQ.png)