我从显微镜获得了一个图像,需要对其进行分析(隔离斑点)。我一直在尝试很多方法来阈值和过滤图像,这给了我很好的结果,现在我正在努力获得最好的结果。
我一直在阅读有关拉普拉斯算子并使用高斯拉普西亚(Lapacian of Gauss)来发现零交叉,这是图像的边缘。
我已经为我的主题图片实现了this代码,我可以查看拉普拉斯结果,但我不知道如何“使用”它,因为它在其他“空间”(深度)
这是主题图像和拉普拉斯结果。我如何从拉普拉斯图像中获得斑点?
答案 0 :(得分:0)
由于您已经在输入图像上完成了拉普拉斯,因此您需要做的下一步是:
阈值图像以获取二进制图像。
在二进制图像中查找轮廓(blob)。
示例代码可能如下所示:
laplacian_img_RGB = cv2.cvtColor(laplacian_img, cv2.COLOR_GRAY2BGR)
ret, thresh = cv2.threshold(laplacian_img, 140, 255, cv2.THRESH_BINARY)
img, contours, hierarchy = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# For debugging Purposes
for i in xrange(len(contours)):
laplacian_img_RGB = cv2.drawContours(laplacian_img_RGB, contours, i, [0, 255, 0], 3)
cv2.imwrite("./debug.png", laplacian_img_RGB)