gpt4 book ai didi

python - 无需绘图即可检测轮廓相交

转载 作者:行者123 更新时间:2023-12-02 17:26:53 26 4
gpt4 key购买 nike

我正在努力检测显微镜图像中的细胞,如下图所示。由于显微镜载玻片上的缺陷,经常会绘制出虚假的轮廓,如下图图例下方的轮廓。

我目前正在使用 this solution清理这些。这是基本的想法。

# Create image of background
blank = np.zeros(image.shape[0:2])
background_image = cv2.drawContours(blank.copy(), background_contour, 0, 1, -1)

for i, c in enumerate(contours):
# Create image of contour
contour_image = cv2.drawContours(blank.copy(), contours, i, 1, -1)
# Create image of focal contour + background
total_image = np.where(background_image+contour_image>0, 1, 0)
# Check if contour is outside postive space
if total_image.sum() > background_image.sum():
continue

enter image description here

这按预期工作;如果 total_image面积大于 background_image 的面积然后 c必须在感兴趣的区域之外。但是绘制所有这些轮廓非常慢,检查数千个轮廓需要几个小时。 有没有更有效的方法来检查轮廓是否重叠而不需要绘制轮廓?

最佳答案

我假设目标是从进一步分析中排除外部轮廓?如果是这样,最简单的方法是使用红色背景轮廓作为蒙版。然后使用蒙版图像检测蓝色细胞。

# Create image of background
blank = np.zeros(image.shape[0:2], dtype=np.uint8)
background_image = cv2.drawContours(blank.copy(), background_contour, 0, (255), -1)

# mask input image (leaves only the area inside the red background contour)
res = cv2.bitwise_and(image,image,mask=background_image )

#[detect blue cells]

enter image description here

关于python - 无需绘图即可检测轮廓相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58756401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com