从图片中找到方形中心

时间:2014-06-21 02:59:59

标签: python opencv image-processing detection

在图像处理之后,从fft,过滤器和阈值处理,我获得了以下图像:

enter image description here

所以,我想知道如何提取这些中心。是否存在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个中心圈。

1 个答案:

答案 0 :(得分:2)

您可能需要使用Image Moments

作为预处理步骤,threshold创建正方形掩码的源,然后传递给findcontours