G

Untitled

public
Guest May 14, 2024 Never 47
Clone
Plaintext paste1.txt 58 lines (37 loc) | 1.92 KB
1
Mat image1 = new Mat();
2
image1 = CvInvoke.Imread("./Img/image2.jpg", Emgu.CV.CvEnum.ImreadModes.Color);
3
Mat image2 = CvInvoke.Imread("./Img/image6.jpg", Emgu.CV.CvEnum.ImreadModes.Color);
4
Mat gray1 = new Mat();
5
Mat gray2 = new Mat();
6
CvInvoke.CvtColor(image1, gray1, Emgu.CV.CvEnum.ColorConversion.Bgr2Gray);
7
CvInvoke.CvtColor(image2, gray2, Emgu.CV.CvEnum.ColorConversion.Bgr2Gray);
8
9
VectorOfKeyPoint keypoints1 = new VectorOfKeyPoint();
10
VectorOfKeyPoint keypoints2 = new VectorOfKeyPoint();
11
12
Mat mask;
13
int k = 2;
14
double uiquenessthreshold = 0.80;
15
VectorOfVectorOfDMatch matches = new VectorOfVectorOfDMatch();
16
17
ORB detector = new ORB();
18
Mat descriptors1 = new Mat();
19
Mat descriptors2 = new Mat();
20
detector.DetectAndCompute(gray1, null, keypoints1, descriptors1, false);
21
detector.DetectAndCompute(gray2, null, keypoints2, descriptors2, false);
22
23
24
25
BFMatcher bFMatcher = new BFMatcher(DistanceType.Hamming);
26
27
bFMatcher.Add(descriptors1);
28
29
bFMatcher.KnnMatch(descriptors2, matches, k);
30
31
32
mask = new Mat(matches.Size, 1, Emgu.CV.CvEnum.DepthType.Cv8U, 1);
33
34
35
mask.SetTo(new MCvScalar(255));
36
37
Features2DToolbox.VoteForUniqueness(matches, uiquenessthreshold, mask);
38
39
40
41
42
Console.WriteLine(mask);
43
int similarityScore = CvInvoke.CountNonZero(mask);
44
45
46
Console.WriteLine("Similarity score: " + similarityScore);
47
48
int threshold = 50;
49
50
// Compare similarity score with threshold
51
if (similarityScore > threshold)
52
{
53
Console.WriteLine("Images match!");
54
}
55
else
56
{
57
Console.WriteLine("Images do not match.");
58
}