将粒子串转换为一个粒子openCV python

时间:2014-02-03 23:03:43

标签: python opencv image-processing

我正在进行一些图像处理,我希望能够跟踪image中的趋势。我希望能够在该图像中将各个粒子链接在一起,以创建一条曲线。我确实有一些code *用来限制原始image

我已经尝试编辑阈值以使粒子“啮合在一起”,因为变化的阈值会导致粒子生长,从而几乎弥合它们之间的间隙。

如果有办法检测粒子之间的相关性并连接它们,我想知道。我已经研究过一个名为blob检测的概念,但我还是无法理解它。

非常感谢任何有关如何解决此问题的帮助

这是该链接的代码:

import cv2  
import numpy as np  
from matplotlib import pyplot as plt

img = cv2.imread('imgs/image.jpg',0)
#img = cv2.medianBlur(img,5)

ret,th1 = cv2.threshold(img,117,255,cv2.THRESH_BINARY)
th2 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,\
            cv2.THRESH_BINARY,11,2)
th3 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
            cv2.THRESH_BINARY,11,2)

titles = ['Original Image', 'Global Thresholding (v = 127)']
images = [img, th1]

for i in xrange(2):
    plt.subplot(2,2,i+1),plt.imshow(images[i],'gray')
    plt.title(titles[i])
    plt.xticks([]),plt.yticks([])
plt.show()

cv2.imwrite("test_thresh2.png", th1)

1 个答案:

答案 0 :(得分:0)

查看OpenCV Eroding and Dilating,您可以在其中使用Dilating。

参见示例。

  Mat src=imread("src.png",1);
  int dilation_size = 3;
  Mat element = getStructuringElement( MORPH_RECT,
                                      Size( 2*dilation_size + 1, 2*dilation_size+1 ),
                                      Point( dilation_size, dilation_size ) );

  Mat dst;
  dilate( src, dst, element );
  imshow("dst",dst);

enter image description here enter image description here