在图像处理之后,从fft,过滤器和阈值处理,我获得了以下图像:
所以,我想知道如何提取这些中心。是否存在OpenCV的任何功能? (例如用于检测圆圈的HoughCircles?)或者我是否需要使用聚类方法?
也许知道我使用的代码对你有用:
import cv2
import numpy as np
import scipy.ndimage as ndimage
from scipy.ndimage import maximum_filter
img = cv2.imread("pic.tif",0)
s = np.fft.fftshift(np.fft.fft2(img))
intensity = 20 * np.log(np.abs(s))
maxs = maximum_filter(intensity, 125)
maxs[maxs < intensity] = intensity.max()
ret, thresh = cv2.threshold(maxs.astype('uint8'),0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
imshow(thresh)
PS:所以我还有另外一个问题,对你们中的一些人来说可能会有用。 maximum_filter
函数给了我&#34; 3个方格&#34;(然后我会通过使用阈值来更好地显示它们),那么有没有办法使用maximum_filter
功能并获得&#34; 3个圈&#34;?然后我们可以使用HoughCircles
获取3个中心圈。