用法:
skimage.transform.hough_line(image, theta=None)
执行直线霍夫变换。
- image:(M, N) ndarray
具有表示边的非零值的输入图像。
- theta:1D ndarray of double,可选
计算变换的角度,以弧度为单位。默认为在 [-pi/2, pi/2) 范围内均匀分布的 180 个角度的向量。
- hspace:uint64 的二维数组
霍夫变换累加器。
- angles:ndarray
计算变换的角度,以弧度为单位。
- distances:ndarray
距离值。
参数:
返回:
注意:
原点是原始图像的左上角。 X 和 Y 轴分别是水平和垂直边。距离是从原点到检测线的最小代数距离。可以通过减小 theta 阵列中的步长来提高角度精度。
例子:
生成测试图像:
>>> img = np.zeros((100, 150), dtype=bool) >>> img[30, :] = 1 >>> img[:, 65] = 1 >>> img[35:45, 35:50] = 1 >>> for i in range(90): ... img[i, i] = 1 >>> rng = np.random.default_rng() >>> img += rng.random(img.shape) > 0.95
应用霍夫变换:
>>> out, angles, d = hough_line(img)
import numpy as np import matplotlib.pyplot as plt from skimage.transform import hough_line from skimage.draw import line img = np.zeros((100, 150), dtype=bool) img[30, :] = 1 img[:, 65] = 1 img[35:45, 35:50] = 1 rr, cc = line(60, 130, 80, 10) img[rr, cc] = 1 rng = np.random.default_rng() img += rng.random(img.shape) > 0.95 out, angles, d = hough_line(img) fix, axes = plt.subplots(1, 2, figsize=(7, 4)) axes[0].imshow(img, cmap=plt.cm.gray) axes[0].set_title('Input image') angle_step = 0.5 * np.rad2deg(np.diff(angles).mean()) d_step = 0.5 * np.diff(d).mean() bounds = (np.rad2deg(angles[0]) - angle_step, np.rad2deg(angles[-1]) + angle_step, d[-1] + d_step, d[0] - d_step) axes[1].imshow(out, cmap=plt.cm.bone, extent=bounds) axes[1].set_title('Hough transform') axes[1].set_xlabel('Angle (degree)') axes[1].set_ylabel('Distance (pixel)') plt.tight_layout() plt.show()
相关用法
- Python skimage.transform.hough_line_peaks用法及代码示例
- Python skimage.transform.hough_circle_peaks用法及代码示例
- Python skimage.transform.hough_ellipse用法及代码示例
- Python skimage.transform.hough_circle用法及代码示例
- Python skimage.transform.resize用法及代码示例
- Python skimage.transform.integrate用法及代码示例
- Python skimage.transform.frt2用法及代码示例
- Python skimage.transform.estimate_transform用法及代码示例
- Python skimage.transform.rotate用法及代码示例
- Python skimage.transform.rescale用法及代码示例
- Python skimage.transform.ifrt2用法及代码示例
- Python skimage.transform.resize_local_mean用法及代码示例
- Python skimage.transform.warp_polar用法及代码示例
- Python skimage.transform.warp_coords用法及代码示例
- Python skimage.transform.downscale_local_mean用法及代码示例
- Python skimage.transform.warp用法及代码示例
- Python skimage.feature.graycomatrix用法及代码示例
- Python skimage.color.lab2lch用法及代码示例
- Python skimage.draw.random_shapes用法及代码示例
- Python skimage.feature.blob_doh用法及代码示例
注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.transform.hough_line。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。