通过视频测量裂缝的增长率

时间:2019-11-10 16:07:54

标签: python opencv image-processing computer-vision video-processing

我的实验涉及对一种物质施加压力,使该物质最终破裂。裂纹随着施加的时间和压力而增长。我有一个设置,可以在固定的时间间隔内对物质进行拍照。

我需要测量裂纹扩展的速度。如何处理? (我可以用Python编写代码)。

有没有一种方法可以测量从一帧到另一帧的实时速度或裂纹的增长速度? enter image description here

Google驱动器链接到一系列照片-https://drive.google.com/open?id=189cv8B4rm3lhSgT6OYfI_aN0Xmqi-tYi

请告知。

我根据此问题的建议尝试了OpenCV的FloodFill。但是返回的掩码如下所示:

enter image description here

h, w = resized.shape[:2]
mask = np.zeros((h+2, w+2), np.uint8) 
seed = (int(w/2),int(h/2))

# Floodfill from point (0, 0)
num,im,mask,rect = cv2.floodFill(resized, mask, (0,0), (255,0,0), (10,)*3, (10,)*3, floodflags)

我想,如果我能得到包围裂缝的矩形边界框的坐标,那么我可以跨框架跟踪其坐标,并测量裂缝的大小并最终测量速度。

我尝试了如下阈值设置:

th, im_th = cv2.threshold(im, 100, 255, cv2.THRESH_BINARY);

这给出: enter image description here

我不确定是否可以过滤出背景并仅在裂缝上方绘制边框。请告知。

谢谢。

3 个答案:

答案 0 :(得分:0)

取决于裂缝形成的速度,您可能不需要视频;您可能反而会每隔X个帧 采样一次,然后将所有多余的帧丢掉。您想要的是足够的框架,以在裂缝中获得“增量”变化,而又不会获得太多的框架,以免计算量太大。

  1. 如果您可以在设置中仔细控制照明条件,那么您很幸运!这成为一个非常简单的问题。您可以获取像素的直方图(openCV具有此功能的句柄,PIL和numpy也有)。您应该获得两个颜色系列;一种是物质外部的颜色,另一种是由于裂缝中的阴影而产生的。

    您还可以尝试显着提高每个图像/帧中的对比度,以获取裂缝的二进制遮罩,或在图像上运行edge detector。这些技术将导致帧比原始素材容易处理。您甚至可以将其输入到骨架化过程中,以便在XY图像坐标中生成基于矢量的线表示。

  2. 如果您无法控制照明,或者样品的颜色类似于裂缝,则可能需要使用object detection技术,但是不太可能存在现有的“裂缝检测器”, “因此,您可能需要构建自己的探测器,或者寻找其他探测器来很好地替代成形裂纹的颜色和形状。

如果可能的话,我强烈建议您尝试第一种方法;像素和直方图数学比其他技术容易得多。

答案 1 :(得分:0)

使用适当的分割方法,您将具有从单个帧中提取的对象的详细几何图形。例如:

enter image description here

如果处理多个框架,您将能够及时查看几何图形的演变。有鉴于此,比较多边形以查找形状变化,裂缝等应该很容易:

enter image description here

我以前使用4K视频来获取所有必需的细节和良好的准确性。您可能不需要所有这些数据,但是视频仍然更加灵活。

这是一个完整的示例:https://youtu.be/g2KyfrBtTA4

如果要获得更详细的建议,请提供一些示例。

更新

真实的例子总是有帮助的。因此,您可以分割裂缝:

enter image description here

或物质: enter image description here

或两者: enter image description here

基本上,您需要提高输入的整体质量(重点,实质内容下的背景等)。

正如Mark Setchell所展示的那样,您可能会在结果形状(裂缝的右侧)中得到不需要的背景,因此最好确保不会发生这种情况,或者仅尝试分析这种物质。

无论如何,您的任务似乎并不复杂。如果可以改善图像质量并简化环境(某些特定的背景等),这可能是微不足道的。

答案 2 :(得分:0)

感谢您才刚刚入门,但是您的视频存在一些问题。首先,照明不是最好的,并且不一致,因为人们在它的前面四处移动并投射阴影-它也不能照亮裂缝后面的最佳背景-如果将其设置在高处,效果会更好。裂缝,并向其中闪耀更多,以便更好地照亮裂缝背后的背景。其次,您可以在整个实验过程中不让相机移动!

最后,如果要测量,则需要校准,这至少意味着要在图像中放置标尺-或以固定间隔缩放背景上的线条。如果您正在做所有事情,则还可以使自己的生活变得轻松,并在施加负载的框架板的顶部和底部放置不同颜色或图案的标记,两者都不同。

最后,您想做一些填充或填充之类的事情(可能是通过遮罩),以不同的颜色填充裂缝。然后,测量裂缝的长度和裂缝的最左侧范围非常简单。

enter image description here

相关问题