使用 OpenCV 检测 PS 塑料中的气泡

Detect bubbles in PS plastic using OpenCV

我有一个 PS/Polystyrene(http://en.wikipedia.org/wiki/Polystyrene) 塑料 color.PS 在 processing.Some 时间后是透明的 material,同时加工气泡。 我想用 OpenCV.What 检测这个气泡,我可以做什么?检测气泡的步骤是什么?

这是我要检测的气泡。 http://goo.gl/frnD8Y

检测气泡的最佳方法是利用它们具有高表面曲率这一事实。高曲率意味着它将反射几乎位于任何方向的光源,而平面的反射只能从有限的视点范围内看到。如果您引入一些光源,您的气泡会明显变亮,而背景则不会。然后你就可以阈值了。

或者,您可能希望首先使用颜色找到一个波段,然后在波段内使用移动 window 中的总和找到一组渐变。要将气泡归零,您可以使用 openCV 拟合椭圆函数将椭圆拟合到其梯度。

根据给定的图像,您可以使用以下代码对其进行分割。如果有气泡,边缘会变暗。这样您就可以轻松地对其进行细分

import numpy as np 

import cv2

from matplotlib import pyplot as plt

plt.ion()

filteredContour = []

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

grayImage = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)

binaryImage = np.uint8((grayImage < 20) *1)

plt.imshow(binaryImage)

另一种检测气泡的方法是从侧面提供光线并从顶部使用相机。然后你就可以很容易地细分了。