如何检测图像中的曲线?

时间:2019-02-19 14:24:53

标签: python image-processing

我想检测图像中的所有曲线。我正在使用python。我尝试使用下面的代码,但未检测到图像中的所有曲线(红色虚线圆圈)。有人可以帮忙知道这个问题吗?

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

from skimage import data, color
from skimage.transform import hough_circle, hough_circle_peaks
from skimage.feature import canny
from skimage.draw import circle_perimeter
from skimage.util import img_as_ubyte

image = cv2.imread('s5.png',0)
edges = canny(image, sigma=6, low_threshold=35, high_threshold=50)

hough_radii = np.arange(20, 35, 2)
hough_res   = hough_circle(edges, hough_radii)

accums, cx, cy, radii = hough_circle_peaks(hough_res, hough_radii, 
total_num_peaks=3)

fig, ax = plt.subplots(ncols=1, nrows=1, figsize=(10, 4))
image   = color.gray2rgb(image)
for center_y, center_x, radius in zip(cy, cx, radii):
    circy, circx = circle_perimeter(center_y, center_x, radius)
    image[circy, circx] = (220, 20, 20)

ax.imshow(image, cmap=plt.cm.gray)
plt.show()

这是输出:

output1

output2

0 个答案:

没有答案