File size: 8,128 Bytes
17e2002 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 | 1
00:00:00,430 --> 00:00:00,840
OK.
2
00:00:00,930 --> 00:00:04,890
So let's open up a four point four which is matching Contos shape.
3
00:00:05,050 --> 00:00:07,810
So that's open it here really have it open.
4
00:00:07,890 --> 00:00:14,500
So shape matching shape matching is actually a pretty cool technique implemented in open C.v.
5
00:00:14,700 --> 00:00:18,500
So the code looks a little bit confusing but it's actually quite simple.
6
00:00:18,570 --> 00:00:20,310
So let's run the code and see what's going on.
7
00:00:20,310 --> 00:00:27,000
Fiercly So we have this is a ship template image dubber trying to find in a lot of image.
8
00:00:27,320 --> 00:00:28,020
And here we go.
9
00:00:28,020 --> 00:00:30,430
So this is the image we're trying to find it here.
10
00:00:30,840 --> 00:00:35,130
And we have identified a sheep here is more similar to the shape here.
11
00:00:35,460 --> 00:00:40,770
Alice according to the algorithm there are different methods of doing the proper approximations or ship
12
00:00:40,770 --> 00:00:41,160
matching.
13
00:00:41,160 --> 00:00:42,770
I should say so.
14
00:00:42,810 --> 00:00:44,380
This one here works pretty well.
15
00:00:44,400 --> 00:00:46,150
It actually found a close match.
16
00:00:46,440 --> 00:00:48,640
So now let's see what's going on here.
17
00:00:48,990 --> 00:00:53,360
So as I said we load a template image and here that's a four star.
18
00:00:53,640 --> 00:01:00,330
And that's cool a template image and then we actually have luto a target image here which is the focal
19
00:01:00,450 --> 00:01:01,540
shapes to match.
20
00:01:01,650 --> 00:01:05,070
Or you can consider it to be much too.
21
00:01:05,110 --> 00:01:05,660
All right.
22
00:01:05,660 --> 00:01:10,760
And then what we do next is we find floozie Trishul those images here.
23
00:01:11,000 --> 00:01:15,680
That's part of the procedure that we use in this in this code here.
24
00:01:15,800 --> 00:01:19,730
And then after that we find CONTO is the first template image.
25
00:01:19,730 --> 00:01:25,820
So we extract all Kontos into this image then we sought the Contos and largest A small This just in
26
00:01:25,820 --> 00:01:31,430
case there were any noisy contours or discrepancies because we do know we only want the largest Cantal
27
00:01:33,310 --> 00:01:37,560
and necks since we have sorted Contos by in order from largest the smallest.
28
00:01:37,870 --> 00:01:41,110
We actually remember previously when there's a white background.
29
00:01:41,210 --> 00:01:45,520
The First Consul was always the big box big white box of the image frame.
30
00:01:45,610 --> 00:01:47,050
You can consider it.
31
00:01:47,170 --> 00:01:52,490
So we actually have to get a second largest contour here so we extract Descanso now and then what we
32
00:01:52,510 --> 00:01:58,700
do we actually again find Contos now in our target image which was a shapes to match to be matched to
33
00:01:58,890 --> 00:02:00,180
I should say.
34
00:02:00,280 --> 00:02:01,870
So we do that here.
35
00:02:02,590 --> 00:02:09,120
And then OK so then we actually know loop through all contours in our target image.
36
00:02:09,300 --> 00:02:13,570
And this is where we actually use C-v to match shapes function.
37
00:02:13,590 --> 00:02:14,550
So what we do here.
38
00:02:14,590 --> 00:02:19,710
This is a template Cantal dimply control was actually what we found previously.
39
00:02:20,630 --> 00:02:21,200
Right.
40
00:02:23,230 --> 00:02:27,240
And C see the contours in the control file.
41
00:02:27,310 --> 00:02:29,860
So we're going to target file has multiple contours.
42
00:02:29,850 --> 00:02:31,790
There are multiple shapes in that file.
43
00:02:31,870 --> 00:02:35,300
So that's where we're looping through each of the contours in that file here.
44
00:02:35,680 --> 00:02:41,600
And these parameters here which are different method and method parameters these are for first method
45
00:02:41,650 --> 00:02:47,260
it describes the CONTO matching type which will get into in a moment and then dispersement here which
46
00:02:47,260 --> 00:02:48,950
is just basically a default Perlman's.
47
00:02:49,300 --> 00:02:53,710
Don't interfere with that is probably going to be some works in the open Sivy is an open source project
48
00:02:53,710 --> 00:02:58,390
is probably going to be some work being done on disorder and um but for now it's not utilized totally.
49
00:02:58,420 --> 00:03:02,910
So just leave it at zero and it's actually a float zero apparently.
50
00:03:02,950 --> 00:03:08,160
So what this function returns is a much value.
51
00:03:08,550 --> 00:03:12,190
And basically Lua means a close a match to original image.
52
00:03:12,210 --> 00:03:19,500
If we were matching the exact contours like axium scale and size in order the match would be basically
53
00:03:19,500 --> 00:03:20,560
zero.
54
00:03:20,570 --> 00:03:26,270
However in this case we're looking for the closest match so we can try a different much method here
55
00:03:26,550 --> 00:03:28,130
which I'll get into in one second.
56
00:03:29,540 --> 00:03:35,150
So after we do so after we print the much value here what we do here is that just by trial and error
57
00:03:35,300 --> 00:03:40,890
I figured out that anything that's on that is value of point 1 5 is going to be the closest much or
58
00:03:40,890 --> 00:03:44,960
the much that's closest to the starship on the image.
59
00:03:44,960 --> 00:03:47,230
So that's how we determine whether it's a match or not.
60
00:03:47,390 --> 00:03:53,540
And if it is a match we make that CONTO that we examining in this loop here equal to the closest CONTO
61
00:03:53,540 --> 00:03:55,730
match either way as close as is.
62
00:03:55,750 --> 00:03:59,290
No are here.
63
00:03:59,890 --> 00:04:08,600
And then once that's done we actually draw close control control using draw control as an output.
64
00:04:08,640 --> 00:04:11,050
So that's pretty much how this could works here.
65
00:04:11,070 --> 00:04:12,850
So let's run it one more time.
66
00:04:12,980 --> 00:04:13,970
Real stuff.
67
00:04:14,250 --> 00:04:18,570
And this is a CONTO the Crucis much to CONTO of the star.
68
00:04:18,650 --> 00:04:22,170
So remember I said there are actually different matching methods here.
69
00:04:22,460 --> 00:04:27,660
Despina to parameter this much value saurian is much ships function.
70
00:04:27,800 --> 00:04:34,160
So if you go to open civies documentation here which I'll put a link in our file actually just to see
71
00:04:34,160 --> 00:04:42,300
if keeping make this a mock document you guys do they go.
72
00:04:42,410 --> 00:04:46,360
So if you look at this here are actually tree methods here is Contos much.
73
00:04:46,380 --> 00:04:49,530
I want to add a tree and this is the mathematics behind it.
74
00:04:49,530 --> 00:04:50,570
What's going on here.
75
00:04:50,910 --> 00:04:52,700
So feel free to experiment with it.
76
00:04:52,710 --> 00:04:56,470
We can try changing it to here and see what happens.
77
00:04:56,490 --> 00:04:57,710
It does work and.
78
00:04:57,750 --> 00:05:00,970
But you can see the values here are indeed different.
79
00:05:01,020 --> 00:05:06,270
In fact they're pretty much all under 1.5 here.
80
00:05:06,390 --> 00:05:12,390
So we actually pretty much got lucky because last one here was actually too much essentially and that's
81
00:05:12,390 --> 00:05:16,380
why Close's counter can't count or was equal to see.
82
00:05:16,380 --> 00:05:21,960
So you can play with this and see try different values that up and again here.
83
00:05:22,400 --> 00:05:23,140
So yeah.
84
00:05:23,150 --> 00:05:27,980
So that's how we match onto a ship using this much shape's function in open C-v.
|