用法:
skimage.feature.haar_like_feature(int_image, r, c, width, height, feature_type=None, feature_coord=None)
计算积分图像感兴趣区域 (ROI) 的Haar-like 特征。
Haar-like 特征已成功用于图像分类和对象检测[1]。它已用于[2]中提出的实时人脸检测算法。
- int_image:(M, N) ndarray
需要计算特征的积分图像。
- r:int
检测窗口左上角的Row-coordinate。
- c:int
检测窗口左上角的Column-coordinate。
- width:int
检测窗口的宽度。
- height:int
检测窗口的高度。
- feature_type:str 或 str 列表或无,可选
要考虑的特征类型:
- ‘type-2-x’:沿 x 轴变化的 2 个矩形;
- ‘type-2-y’:沿 y 轴变化的 2 个矩形;
- ‘type-3-x’:沿 x 轴变化的 3 个矩形;
- ‘type-3-y’:沿 y 轴变化的 3 个矩形;
- ‘type-4’:沿 x 和 y 轴变化的 4 个矩形。
默认情况下,所有特征都被提取。
如果与feature_coord一起使用,它应该对应于每个关联坐标特征的特征类型。
- feature_coord:元组列表的 ndarray 或无,可选
要提取的坐标数组。当您只想重新计算特征的子集时,这很有用。在这种情况下feature_type需要是一个包含每个特征类型的数组,由返回skimage.feature.haar_like_feature_coord.默认情况下,计算所有坐标。
- haar_features:(n_features,) int 的 ndarray 或浮点数
产生Haar-like 特征。每个值等于正负矩形之和的减法。数据类型取决于int_image的数据类型:当int_image的数据类型为uint或int时为int,当int_image的数据类型为float时为float。
参数:
返回:
注意:
并行提取这些特征时,请注意后端的选择(即多处理与线程)将对性能产生影响。经验法则如下:在为图像中所有可能的 ROI 提取特征时使用多处理;在为有限数量的 ROI 提取特定位置的特征时使用线程。参考例子使用Haar-like特征说明符进行人脸分类以获得更多见解。
参考:
- 1
- 2
Oren, M., Papageorgiou, C., Sinha, P., Osuna, E., & Poggio, T. (1997, June). Pedestrian detection using wavelet templates. In Computer Vision and Pattern Recognition, 1997. Proceedings., 1997 IEEE Computer Society Conference on (pp. 193-199). IEEE. http://tinyurl.com/y6ulxfta DOI:10.1109/CVPR.1997.609319
- 3
Viola, Paul, and Michael J. Jones. “Robust real-time face detection.” International journal of computer vision 57.2 (2004): 137-154. https://www.merl.com/publications/docs/TR2004-043.pdf DOI:10.1109/CVPR.2001.990517
例子:
>>> import numpy as np >>> from skimage.transform import integral_image >>> from skimage.feature import haar_like_feature >>> img = np.ones((5, 5), dtype=np.uint8) >>> img_ii = integral_image(img) >>> feature = haar_like_feature(img_ii, 0, 0, 5, 5, 'type-3-x') >>> feature array([-1, -2, -3, -4, -5, -1, -2, -3, -4, -5, -1, -2, -3, -4, -5, -1, -2, -3, -4, -1, -2, -3, -4, -1, -2, -3, -4, -1, -2, -3, -1, -2, -3, -1, -2, -3, -1, -2, -1, -2, -1, -2, -1, -1, -1])
您可以计算一些预先计算的坐标的特征。
>>> from skimage.feature import haar_like_feature_coord >>> feature_coord, feature_type = zip( ... *[haar_like_feature_coord(5, 5, feat_t) ... for feat_t in ('type-2-x', 'type-3-x')]) >>> # only select one feature over two >>> feature_coord = np.concatenate([x[::2] for x in feature_coord]) >>> feature_type = np.concatenate([x[::2] for x in feature_type]) >>> feature = haar_like_feature(img_ii, 0, 0, 5, 5, ... feature_type=feature_type, ... feature_coord=feature_coord) >>> feature array([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -3, -5, -2, -4, -1, -3, -5, -2, -4, -2, -4, -2, -4, -2, -1, -3, -2, -1, -1, -1, -1, -1])
相关用法
- Python skimage.feature.haar_like_feature_coord用法及代码示例
- Python skimage.feature.hessian_matrix用法及代码示例
- Python skimage.feature.hessian_matrix_eigvals用法及代码示例
- Python skimage.feature.graycomatrix用法及代码示例
- Python skimage.feature.blob_doh用法及代码示例
- Python skimage.feature.blob_dog用法及代码示例
- Python skimage.feature.graycoprops用法及代码示例
- Python skimage.feature.corner_orientations用法及代码示例
- Python skimage.feature.structure_tensor用法及代码示例
- Python skimage.feature.ORB用法及代码示例
- Python skimage.feature.corner_subpix用法及代码示例
- Python skimage.feature.canny用法及代码示例
- Python skimage.feature.peak_local_max用法及代码示例
- Python skimage.feature.CENSURE用法及代码示例
- Python skimage.feature.corner_foerstner用法及代码示例
- Python skimage.feature.corner_harris用法及代码示例
- Python skimage.feature.corner_fast用法及代码示例
- Python skimage.feature.BRIEF用法及代码示例
- Python skimage.feature.SIFT用法及代码示例
- Python skimage.feature.structure_tensor_eigvals用法及代码示例
注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.feature.haar_like_feature。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。