A series of convenience functions to make basic image processing functions such as translation, rotation, resizing, skeletonization, displaying Matplotlib images, sorting contours, detecting edges, and much more easier with OpenCV and both Python 2.7 and Python 3.
91
{
"context": "This criteria evaluates how well the engineer uses the imutils package's RootSIFT feature detector and descriptor extractor for image feature matching. The focus is on proper instantiation, usage, and integration of RootSIFT with OpenCV's matching and visualization capabilities.",
"type": "weighted_checklist",
"checklist": [
{
"name": "RootSIFT instantiation",
"description": "Uses imutils.feature.RootSIFT() to create a RootSIFT descriptor extractor instance in the detect_and_compute function",
"max_score": 25
},
{
"name": "SIFT detector usage",
"description": "Creates a SIFT feature detector using cv2.SIFT_create() or equivalent, and uses it to detect keypoints before computing RootSIFT descriptors",
"max_score": 15
},
{
"name": "RootSIFT compute method",
"description": "Calls the compute method on the RootSIFT instance with the image and keypoints to generate enhanced descriptors with L1 normalization and square root transformation",
"max_score": 25
},
{
"name": "Descriptor matching setup",
"description": "Uses an appropriate matcher for RootSIFT descriptors (e.g., BruteForce with L2 norm or FLANN-based matcher) via cv2.BFMatcher() or cv2.FlannBasedMatcher()",
"max_score": 15
},
{
"name": "Ratio test implementation",
"description": "Applies Lowe's ratio test by using knnMatch with k=2 and filtering matches where the distance ratio between best and second-best match is below the threshold",
"max_score": 15
},
{
"name": "Match visualization",
"description": "Uses cv2.drawMatches() or cv2.drawMatchesKnn() to visualize the matched keypoints with connecting lines between the two images",
"max_score": 5
}
]
}Install with Tessl CLI
npx tessl i tessl/pypi-imutilsevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10