从照片中找到广场中心

在图像处理之后,从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函数为我提供了“3个正方形”(然后我将通过使用阈值对它们进行更好的可视化),那么有没有办法使用maximum_filter函数并获得“3个圆圈”? 然后我们可以使用HoughCircles获得3个中心圆。


您可能需要使用Image Moments。

作为预处理步骤,将源设为阈值以创建正方形掩码,然后传递给findmtours。

链接地址: http://www.djcxy.com/p/79635.html

上一篇: Finding square centers from a picture

下一篇: Android Threshold image processing