У меня есть интересная серия изображений роста клеток, и моя компания пытается программно определить, какая часть чашки содержит клетки, а какая нет.
Я включил изображение ниже в качестве примера того, что у меня есть. Любая закрытая область — это рост клеток, а любая другая нечерная область — нет.
Я пробовал несколько различных фильтров и алгоритм заливки для поиска между областями роста клеток, но, имея небольшой опыт в обработке изображений, не добился большого успеха. Вот код, который я собрал из Интернета для подсчета количества черных пикселей. Тем не менее, это так медленно, что я думаю, что лучше спросить вас всех.
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)
РЕДАКТИРОВАТЬ
Я погуглил и справился с парой вещей. Во-первых, у меня есть эффективный калькулятор черных пикселей. Во-вторых, у меня есть начальный калькулятор областей роста клеток. Кто-нибудь знает, как рассчитать заключенные желтые границы ниже или иметь другое решение?
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)