ComfyUI Node
CV Filter Keypoints
Keeps a robust subset of keypoints (and their paired descriptors) by scale and strength. Use it on a high-resolution reference object to drop the many tiny, fine-texture keypoints a detector finds there: those small-scale features have no counterpart once the object appears smaller in the cluttered scene, so they only add ambiguous matches and waste the descriptor budget. Prefer this over guessing a 'max_features' count - filtering by size/response keeps the structurally meaningful features regardless of how many there are. Descriptors are filtered in lockstep so they stay aligned with the kept keypoints. Keeping zero keypoints is a valid result (count = 0), not an error.
CV Filter Keypoints
- keypoints
- descriptors
- keypoints
- descriptors
- count
◄min_size0►
◄min_response0.000►
◄top_k0►
Categoryimage/CV/features
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| keypoints | CV_KEYPOINTS | Keypoints to filter (from 'CV Detect Features'). | |
| descriptors | NPARRAY | Descriptors paired with keypoints (same node); kept rows stay aligned with the kept keypoints. | |
| min_size | FLOAT | 00–1000 | Drop keypoints whose diameter (scale, in pixels of the image they were detected in) is below this. 0 = keep all. This is an ABSOLUTE pixel size: if the object appears much smaller in the scene than in the reference, keep this low (or only filter the reference). |
| min_response | FLOAT | 0.0000–1 | Drop weak keypoints whose detector response (corner/contrast strength) is below this. 0 = keep all. |
| top_k | INT | 00–100000 | After the size/response filters, keep only the K strongest by response. 0 = keep all. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| keypoints | CV_KEYPOINTS | — |
| descriptors | NPARRAY | — |
| count | INT | — |