官术网_书友最值得收藏!

  • OpenCV 4 with Python Blueprints
  • Dr. Menua Gevorgyan Arsen Mamikonyan Michael Beyeler
  • 253字
  • 2021-06-24 16:50:08

Obtaining feature descriptors with SURF

The process of extracting features from an image with OpenCV using SURF is also a single step. It is done by the compute method of our feature extractor. The latter accepts an image and the keypoints of the image as arguments:

key_query, desc_query = self.f_extractor.compute(img_query, key_query)

Here, desc_query is a NumPY ndarray with shape (num_keypoints, descriptor_size). You can see that each descriptor is a vector in an n-dimensional space (n-length array of numbers). Each vector describes the corresponding key point and provides some meaningful information about our complete image.

Hence, we have completed our feature extraction algorithm that had to provide meaningful information about our image in reduced dimensionality. It's up to the creator of the algorithm to decide what kind of information is contained in the descriptor vector, but at the very least the vectors should be such that they are closer to similar keypoints than for keypoints that appear different. 

Our feature extraction algorithm also has a convenient method to combine the processes of feature detection and descriptor creation:

key_query, desc_query = self.f_extractor.detectAndCompute (img_query, None)

It returns both keypoints and descriptors in a single step and accepts a mask of an area of interest, which, in our case, is the complete image.

As we have extracted our features, the next step is to query and train images that contain similar features, which is accomplished by a feature matching algorithm. So, let's learn about feature matching in the next section.

主站蜘蛛池模板: 定南县| 忻城县| 施秉县| 宕昌县| 永丰县| 山阳县| 明溪县| 昔阳县| 博兴县| 淮阳县| 恩平市| 会泽县| 特克斯县| 神池县| 鹿泉市| 红桥区| 辽宁省| 桦南县| 定襄县| 丁青县| 合水县| 连南| 安多县| 门源| 军事| 浦江县| 长丰县| 遵化市| 旬邑县| 丰县| 高平市| 萨嘎县| 遂昌县| 迭部县| 甘泉县| 盖州市| 清新县| 应用必备| 东阳市| 湟中县| 兖州市|