【问题标题】:Find ellipses in cell images在单元格图像中查找椭圆
【发布时间】:2020-07-08 02:22:45
【问题描述】:

我有组织切片的图像,我想从中分离出所有隐窝,即您可以在此图像中看到的大椭圆(在二进制阈值处理之后):

在这里它们看起来像圆形,但在一般情况下它们形成近似椭圆。

我尝试在 openCV 中使用 canny、findContours 或 hough_ellipse 但没有成功。

有什么想法吗?

【问题讨论】:

标签: algorithm image-processing ellipse


【解决方案1】:

我没有花太长时间来完善这个答案,但它应该让你开始,然后你可以整理它。基本思想是将黄色转换为白色,将其他所有颜色转换为黑色:

#!/usr/bin/env python3

import numpy as np
import cv2
from scipy.ndimage.morphology import distance_transform_edt

# Load the image
im = cv2.imread('cells.png')

# Form binary image which is white where orginal is yellow and black everywhere else
B = np.zeros_like(im[...,0])
B = im == [38, 230, 253]
cv2.imwrite('tmp.png', (B*255).astype(np.uint8))

这样你就明白了:

现在,做一个distance transform

# Get distance transform
distance = distance_transform_edt(B)

# Normalise for contrast and save
cv2.normalize(distance, distance, 0, 255, cv2.NORM_MINMAX)
cv2.imwrite('result.png', distance.astype(np.uint8))

因此,基本上,结果图像中的点越亮,它离细胞壁和其他东西就越远。然后,您可以在此处找到最大值并使用它们进行进一步检查。

【讨论】:

  • 听起来不错,我可以使用最大值来估计椭圆的中心和形状。谢谢,我去试试!
  • 为了记录,我使用了这种distance_transform 方法并使用最大值迭代地扩展边界,直到我在大多数方向上遇到墙壁(带有阈值)。诚实地完成了这项工作并且非常有效再次感谢!
猜你喜欢
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-12
  • 2012-06-20
  • 1970-01-01
  • 2015-10-17
相关资源
最近更新 更多