bundles / skimage 0.26.1rc0.dev0+git20260530.b607368ff / skimage / feature / haar / haar_like_feature
function
skimage.feature.haar:haar_like_feature
source: /dev/scikit-image/src/skimage/feature/haar.py :86
Signature
def haar_like_feature ( int_image , r , c , width , height , feature_type = None , feature_coord = None ) Summary
Compute the Haar-like features for a region of interest (ROI) of an integral image.
Extended Summary
Haar-like features have been successfully used for image classification and object detection [1]. It has been used for real-time face detection algorithm proposed in [2].
Parameters
int_image: ndarray of shape (M, N)Integral image for which the features need to be computed.
r: intRow-coordinate of top left corner of the detection window.
c: intColumn-coordinate of top left corner of the detection window.
width: intWidth of the detection window.
height: intHeight of the detection window.
feature_type: str or list of str or None, optionalThe type of feature to consider:
'type-2-x': 2 rectangles varying along the x axis;
'type-2-y': 2 rectangles varying along the y axis;
'type-3-x': 3 rectangles varying along the x axis;
'type-3-y': 3 rectangles varying along the y axis;
'type-4': 4 rectangles varying along x and y axis.
By default all features are extracted.
If using with
feature_coord, it should correspond to the feature type of each associated coordinate feature.feature_coord: ndarray of list of tuples or None, optionalThe array of coordinates to be extracted. This is useful when you want to recompute only a subset of features. In this case
feature_typeneeds to be an array containing the type of each feature, as returned by haar_like_feature_coord. By default, all coordinates are computed.
Returns
haar_features: ndarray of shape (n_features,) and dtype (int or float)Resulting Haar-like features. Each value is equal to the subtraction of sums of the positive and negative rectangles. The data type depends of the data type of
int_image:intwhen the data type ofint_imageisuintorintandfloatwhen the data type ofint_imageisfloat.
Notes
When extracting those features in parallel, be aware that the choice of the backend (i.e., multiprocessing vs threading) will have an impact on the performance. The rule of thumb is as follows: use multiprocessing when extracting features for all possible ROI in an image; use threading when extracting the feature at specific location for a limited number of ROIs. Refer to the example sphx_glr_auto_examples_applications_plot_haar_extraction_selection_classification.py for more insights.
Examples
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✓
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')]) 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✓
Aliases
-
skimage.feature.haar_like_feature