首页 > 解决方案 > 用自适应阈值分析粒子?

问题描述

我对 OpenCV 完全陌生,并且正在尝试分析生物图像。但是,我无法量化您在这些图片上看到的“点”:

1.) 这是一张图片,您可以清楚地看到红色背景上的红点。

在此处输入图像描述

2.)在这张照片上,由于强烈的背景信号,很难识别这些点:

在此处输入图像描述

3.) 然而,它们是一张大的显微镜图像的一部分:

在此处输入图像描述

我正在尝试编写一个程序来量化每个粒子并编写以下 OpenCV 脚本:

import cv2
import numpy as np

img = cv2.imread('image.png')

mask = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
th = 35

mask[mask<th] = 0
mask[mask>0] = 255
mask = np.stack([mask, mask, mask], axis=2)

result = np.hstack((img, mask))

cv2.namedWindow("peaks", cv2.WINDOW_NORMAL)
cv2.imshow("peaks", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

然而,这只适用于没有强烈嘈杂背景的图像:

在此处输入图像描述

但没有一个具有强大背景的人:

在此处输入图像描述

这非常令人沮丧,因为背景噪音导致成像非常糟糕 - 但是有没有办法分析粒子?我听说过自适应阈值。它对这个问题有效吗?我会很高兴得到任何帮助!

亲切的问候,柱间

标签: image-processingopencv-pythonparticlesadaptive-threshold

解决方案


推荐阅读