简体   繁体   中英

How to enhance feature detection using ORB in Opencv?

I'm developing an Android application to match two images using ORB feature detection .

The processing and matching logic is called in java using JNI functions.

The problem is that the feature detections works well for some images, but fails in some images and some cases.

Here is an example of images that fails in some unknown conditions

在此输入图像描述

After some thoughts and discussions, I figured out that the problem is that the problem is the lack of features that's why the program fails. Someone in the opencv community tried this image and it gave him 60 keypoints which all of them doesn't survive the RobustMatcher tests.

So I need to enhance to features in this image in order to make the matching work.

In addition to equalizeHist , what can I do ?

I hope you can help me with some suggestions and maybe some examples guys.

One way is to enhance the edges of the image. Do a Laplacian filter for example and multiply the result to the original image. This job makes the features (edge) more salient. Of course before everything convert the image to a float type and at the end, normalize your image.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM