使用 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)
另一种检测气泡的方法是从侧面提供光线并从顶部使用相机。然后你就可以很容易地细分了。
我有一个 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)
另一种检测气泡的方法是从侧面提供光线并从顶部使用相机。然后你就可以很容易地细分了。