我正在进行一些图像处理,我希望能够跟踪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)
答案 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);