# features2d usage issue (in mexopencv)

Hello, i am using opencv in matlab through the library mexopencv. The creator of the library said that my issues should be asked directly to the creators of opencv so here i am and thanks in advance for your help.

I am trying different algorithms for keypoints detection, description and matching. My problem is that the results are not satisfying even if i directly use the same procedure shown in your tutorial with the same image (bastoncini di pesce box). So here is the code i am using:

```
a = imread('scene.pgm');
b = imread('box.pgm');
detector = cv.FeatureDetector('SURF');
k1 = detector.detect(a);
k2 = detector.detect(b);
extractor = cv.DescriptorExtractor('SURF');
d1 = extractor.compute(a, k1);
d2 = extractor.compute(b, k2);
matcher = cv.DescriptorMatcher('FlannBased');
matches = matcher.match(d1, d2);
n = numel(matches);
maxDist = 0; minDist = Inf;
for i = 1:n
if(matches(i).distance > maxDist) maxDist = matches(i).distance; end
if(matches(i).distance < minDist) minDist = matches(i).distance; end
end
cont = 1;
i = 1;
while(i < n)
if(matches(i).distance <= minDist*2)
goodMatches(cont) = matches(i);
cont = cont + 1;
end
i = i + 1;
end
n = numel(goodMatches);
for i=1:n
srcPoints(1,i,1) = k1(goodMatches(i).queryIdx + 1).pt(1);
srcPoints(1,i,2) = k1(goodMatches(i).queryIdx + 1).pt(2);
dstPoints(1,i,1) = k2(goodMatches(i).trainIdx + 1).pt(1);
dstPoints(1,i,2) = k2(goodMatches(i).trainIdx + 1).pt(2);
end
[H, ok] = cv.findHomography(srcPoints, dstPoints, 'Method', 'Ransac');
//project corners of image a in b
[h,l] = size(b);
p1 = H * [0; 0; 1];
p2 = H * [l; 0; 1];
p3 = H * [l; h; 1];
p4 = H * [0; h; 1];
x3 = [p1 p2 p3 p4];
inliers = [];
cont = 1;
for i = 1:numel(ok)
if(ok(i) == 1)
inliers(cont) = i;
cont = cont + 1;
end
end
for j = 1:numel(inliers)
newMatches(j) = goodMatches(inliers(j));
end
imshow(cv.drawMatches(a, k1, b, k2, newMatches));
```

Then i plot the corners on b. Here are the results:

- Using
`minDist*2`

as threshold:

- Corner points plotted on b:

- Using
`minDist*3`

as threshold:

- No threshold:

Hi, I'm using the mexopencv in matlab. But i encountered a very tough problem: When I use mexopencv in my matlab, the matlab will breakdown and close. I wonder why? I just install my mexopencv following the instruction given by the original author. I download the mexopencv.zip file and compile it in the matlab 2010Ra with the compiler of VS2008. I can coompile it successfully, and generate all the mexwin32 file in +cv filefolder. But when I use the mexopencv in matlab ,the matlab will bereakdown and close up. I think you must install it successfully. I need your help urgently, and I will be very grateful if you can help me out. Thank you!

@yxwang11, the original question is more related to opencv, but your question is related to mexopencv, so you should ask it to the author, not here.

Ok, thank you also the same.