我有一系列关于细胞生长的有趣图片,我的公司正在尝试以编程的方式量化培养皿中含有多少细胞以及不含有多少细胞。
我在下面包含了一个示例图像。任何被圈起来的区域都是细胞生长区域,而其他非黑色区域则不是。
我尝试了几种不同的过滤器和洪水填充算法来搜索细胞生长区域之间的差异,但由于对图像处理缺乏经验,所以并没有取得太大的成功。这里有一些我从互联网上找到的代码,用于计算黑色像素的数量。然而,它运行速度非常慢,所以我认为最好请教各位。
我在下面包含了一个示例图像。任何被圈起来的区域都是细胞生长区域,而其他非黑色区域则不是。
我尝试了几种不同的过滤器和洪水填充算法来搜索细胞生长区域之间的差异,但由于对图像处理缺乏经验,所以并没有取得太大的成功。这里有一些我从互联网上找到的代码,用于计算黑色像素的数量。然而,它运行速度非常慢,所以我认为最好请教各位。
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)