├── .gitattributes
├── Images
├── Example_Image.png
├── Example_Image_different_cute_kittens.png
└── binance.jpg
├── JavaFX-OpenCV
├── .classpath
├── .project
├── bin
│ └── application
│ │ ├── FXController$1.class
│ │ ├── FXController.class
│ │ ├── FirstJFX.fxml
│ │ ├── Main$1.class
│ │ ├── Main.class
│ │ └── application.css
├── build.fxbuild
├── lbpcascade_frontalface.xml
└── src
│ └── application
│ ├── FXController.java
│ ├── FirstJFX.fxml
│ ├── Main.java
│ └── application.css
├── LICENSE
└── README.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/Images/Example_Image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDouble/Cat-Face-Detector-with-OpenCV-and-JavaFX/e0672163b85e196c2350137ab994a46178312e09/Images/Example_Image.png
--------------------------------------------------------------------------------
/Images/Example_Image_different_cute_kittens.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDouble/Cat-Face-Detector-with-OpenCV-and-JavaFX/e0672163b85e196c2350137ab994a46178312e09/Images/Example_Image_different_cute_kittens.png
--------------------------------------------------------------------------------
/Images/binance.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDouble/Cat-Face-Detector-with-OpenCV-and-JavaFX/e0672163b85e196c2350137ab994a46178312e09/Images/binance.jpg
--------------------------------------------------------------------------------
/JavaFX-OpenCV/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/JavaFX-OpenCV/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | JavaFX-OpenCV
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.xtext.ui.shared.xtextBuilder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.xtext.ui.shared.xtextNature
21 | org.eclipse.jdt.core.javanature
22 |
23 |
24 |
--------------------------------------------------------------------------------
/JavaFX-OpenCV/bin/application/FXController$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDouble/Cat-Face-Detector-with-OpenCV-and-JavaFX/e0672163b85e196c2350137ab994a46178312e09/JavaFX-OpenCV/bin/application/FXController$1.class
--------------------------------------------------------------------------------
/JavaFX-OpenCV/bin/application/FXController.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDouble/Cat-Face-Detector-with-OpenCV-and-JavaFX/e0672163b85e196c2350137ab994a46178312e09/JavaFX-OpenCV/bin/application/FXController.class
--------------------------------------------------------------------------------
/JavaFX-OpenCV/bin/application/FirstJFX.fxml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/JavaFX-OpenCV/bin/application/Main$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDouble/Cat-Face-Detector-with-OpenCV-and-JavaFX/e0672163b85e196c2350137ab994a46178312e09/JavaFX-OpenCV/bin/application/Main$1.class
--------------------------------------------------------------------------------
/JavaFX-OpenCV/bin/application/Main.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDouble/Cat-Face-Detector-with-OpenCV-and-JavaFX/e0672163b85e196c2350137ab994a46178312e09/JavaFX-OpenCV/bin/application/Main.class
--------------------------------------------------------------------------------
/JavaFX-OpenCV/bin/application/application.css:
--------------------------------------------------------------------------------
1 | /* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
--------------------------------------------------------------------------------
/JavaFX-OpenCV/build.fxbuild:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/JavaFX-OpenCV/lbpcascade_frontalface.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 | BOOST
9 | LBP
10 | 24
11 | 24
12 |
13 | GAB
14 | 0.9950000047683716
15 | 0.5000000000000000
16 | 0.9500000000000000
17 | 1
18 | 100
19 |
20 | 256
21 | 20
22 |
23 |
24 | <_>
25 | 3
26 | -0.7520892024040222
27 |
28 |
29 | <_>
30 |
31 | 0 -1 46 -67130709 -21569 -1426120013 -1275125205 -21585
32 | -16385 587145899 -24005
33 |
34 | -0.6543210148811340 0.8888888955116272
35 |
36 | <_>
37 |
38 | 0 -1 13 -163512766 -769593758 -10027009 -262145 -514457854
39 | -193593353 -524289 -1
40 |
41 | -0.7739216089248657 0.7278633713722229
42 |
43 | <_>
44 |
45 | 0 -1 2 -363936790 -893203669 -1337948010 -136907894
46 | 1088782736 -134217726 -741544961 -1590337
47 |
48 | -0.7068563103675842 0.6761534214019775
49 |
50 | <_>
51 | 4
52 | -0.4872078299522400
53 |
54 |
55 | <_>
56 |
57 | 0 -1 84 2147483647 1946124287 -536870913 2147450879
58 | 738132490 1061101567 243204619 2147446655
59 |
60 | -0.8083735704421997 0.7685696482658386
61 |
62 | <_>
63 |
64 | 0 -1 21 2147483647 263176079 1879048191 254749487 1879048191
65 | -134252545 -268435457 801111999
66 |
67 | -0.7698410153388977 0.6592915654182434
68 |
69 | <_>
70 |
71 | 0 -1 106 -98110272 1610939566 -285484400 -850010381
72 | -189334372 -1671954433 -571026695 -262145
73 |
74 | -0.7506558895111084 0.5444605946540833
75 |
76 | <_>
77 |
78 | 0 -1 48 -798690576 -131075 1095771153 -237144073 -65569 -1
79 | -216727745 -69206049
80 |
81 | -0.7775990366935730 0.5465461611747742
82 |
83 | <_>
84 | 4
85 | -1.1592328548431396
86 |
87 |
88 | <_>
89 |
90 | 0 -1 47 -21585 -20549 -100818262 -738254174 -20561 -36865
91 | -151016790 -134238549
92 |
93 | -0.5601882934570313 0.7743113040924072
94 |
95 | <_>
96 |
97 | 0 -1 12 -286003217 183435247 -268994614 -421330945
98 | -402686081 1090387966 -286785545 -402653185
99 |
100 | -0.6124526262283325 0.6978127956390381
101 |
102 | <_>
103 |
104 | 0 -1 26 -50347012 970882927 -50463492 -1253377 -134218251
105 | -50364513 -33619992 -172490753
106 |
107 | -0.6114496588706970 0.6537628173828125
108 |
109 | <_>
110 |
111 | 0 -1 8 -273 -135266321 1877977738 -2088243418 -134217987
112 | 2146926575 -18910642 1095231247
113 |
114 | -0.6854077577590942 0.5403239130973816
115 |
116 | <_>
117 | 5
118 | -0.7562355995178223
119 |
120 |
121 | <_>
122 |
123 | 0 -1 96 -1273 1870659519 -20971602 -67633153 -134250731
124 | 2004875127 -250 -150995969
125 |
126 | -0.4051094949245453 0.7584033608436585
127 |
128 | <_>
129 |
130 | 0 -1 33 -868162224 -76810262 -4262145 -257 1465211989
131 | -268959873 -2656269 -524289
132 |
133 | -0.7388162612915039 0.5340843200683594
134 |
135 | <_>
136 |
137 | 0 -1 57 -12817 -49 -541103378 -152950 -38993 -20481 -1153876
138 | -72478976
139 |
140 | -0.6582943797111511 0.5339496731758118
141 |
142 | <_>
143 |
144 | 0 -1 125 -269484161 -452984961 -319816180 -1594032130 -2111
145 | -990117891 -488975296 -520947741
146 |
147 | -0.5981323719024658 0.5323504805564880
148 |
149 | <_>
150 |
151 | 0 -1 53 557787431 670265215 -1342193665 -1075892225
152 | 1998528318 1056964607 -33570977 -1
153 |
154 | -0.6498787999153137 0.4913350641727448
155 |
156 | <_>
157 | 5
158 | -0.8085358142852783
159 |
160 |
161 | <_>
162 |
163 | 0 -1 60 -536873708 880195381 -16842788 -20971521 -176687276
164 | -168427659 -16777260 -33554626
165 |
166 | -0.5278195738792419 0.6946372389793396
167 |
168 | <_>
169 |
170 | 0 -1 7 -1 -62981529 -1090591130 805330978 -8388827 -41945787
171 | -39577 -531118985
172 |
173 | -0.5206505060195923 0.6329920291900635
174 |
175 | <_>
176 |
177 | 0 -1 98 -725287348 1347747543 -852489 -16809993 1489881036
178 | -167903241 -1 -1
179 |
180 | -0.7516061067581177 0.4232024252414703
181 |
182 | <_>
183 |
184 | 0 -1 44 -32777 1006582562 -65 935312171 -8388609 -1078198273
185 | -1 733886267
186 |
187 | -0.7639313936233521 0.4123568832874298
188 |
189 | <_>
190 |
191 | 0 -1 24 -85474705 2138828511 -1036436754 817625855
192 | 1123369029 -58796809 -1013468481 -194513409
193 |
194 | -0.5123769044876099 0.5791834592819214
195 |
196 | <_>
197 | 5
198 | -0.5549971461296082
199 |
200 |
201 | <_>
202 |
203 | 0 -1 42 -17409 -20481 -268457797 -134239493 -17473 -1 -21829
204 | -21846
205 |
206 | -0.3763174116611481 0.7298233509063721
207 |
208 | <_>
209 |
210 | 0 -1 6 -805310737 -2098262358 -269504725 682502698
211 | 2147483519 1740574719 -1090519233 -268472385
212 |
213 | -0.5352765917778015 0.5659480094909668
214 |
215 | <_>
216 |
217 | 0 -1 61 -67109678 -6145 -8 -87884584 -20481 -1073762305
218 | -50856216 -16849696
219 |
220 | -0.5678374171257019 0.4961479902267456
221 |
222 | <_>
223 |
224 | 0 -1 123 -138428633 1002418167 -1359008245 -1908670465
225 | -1346685918 910098423 -1359010520 -1346371657
226 |
227 | -0.5706262588500977 0.4572288393974304
228 |
229 | <_>
230 |
231 | 0 -1 9 -89138513 -4196353 1256531674 -1330665426 1216308261
232 | -36190633 33498198 -151796633
233 |
234 | -0.5344601869583130 0.4672054052352905
235 |
236 | <_>
237 | 5
238 | -0.8776460289955139
239 |
240 |
241 | <_>
242 |
243 | 0 -1 105 1073769576 206601725 -34013449 -33554433 -789514004
244 | -101384321 -690225153 -264193
245 |
246 | -0.7700348496437073 0.5943940877914429
247 |
248 | <_>
249 |
250 | 0 -1 30 -1432340997 -823623681 -49153 -34291724 -269484035
251 | -1342767105 -1078198273 -1277955
252 |
253 | -0.5043668746948242 0.6151274442672730
254 |
255 | <_>
256 |
257 | 0 -1 35 -1067385040 -195758209 -436748425 -134217731
258 | -50855988 -129 -1 -1
259 |
260 | -0.6808040738105774 0.4667325913906097
261 |
262 | <_>
263 |
264 | 0 -1 119 832534325 -34111555 -26050561 -423659521 -268468364
265 | 2105014143 -2114244 -17367185
266 |
267 | -0.4927591383457184 0.5401885509490967
268 |
269 | <_>
270 |
271 | 0 -1 82 -1089439888 -1080524865 2143059967 -1114121
272 | -1140949004 -3 -2361356 -739516
273 |
274 | -0.6445107460021973 0.4227822124958038
275 |
276 | <_>
277 | 6
278 | -1.1139287948608398
279 |
280 |
281 | <_>
282 |
283 | 0 -1 52 -1074071553 -1074003969 -1 -1280135430 -5324817 -1
284 | -335548482 582134442
285 |
286 | -0.5307556986808777 0.6258179545402527
287 |
288 | <_>
289 |
290 | 0 -1 99 -706937396 -705364068 -540016724 -570495027
291 | -570630659 -587857963 -33628164 -35848193
292 |
293 | -0.5227634310722351 0.5049746036529541
294 |
295 | <_>
296 |
297 | 0 -1 18 -2035630093 42119158 -268503053 -1671444 261017599
298 | 1325432815 1954394111 -805306449
299 |
300 | -0.4983572661876679 0.5106441378593445
301 |
302 | <_>
303 |
304 | 0 -1 111 -282529488 -1558073088 1426018736 -170526448
305 | -546832487 -5113037 -34243375 -570427929
306 |
307 | -0.4990860521793366 0.5060507059097290
308 |
309 | <_>
310 |
311 | 0 -1 92 1016332500 -606301707 915094269 -1080086049
312 | -1837027144 -1361600280 2147318747 1067975613
313 |
314 | -0.5695009231567383 0.4460467398166657
315 |
316 | <_>
317 |
318 | 0 -1 51 -656420166 -15413034 -141599534 -603435836
319 | 1505950458 -787556946 -79823438 -1326199134
320 |
321 | -0.6590405106544495 0.3616424500942230
322 |
323 | <_>
324 | 7
325 | -0.8243625760078430
326 |
327 |
328 | <_>
329 |
330 | 0 -1 28 -901591776 -201916417 -262 -67371009 -143312112
331 | -524289 -41943178 -1
332 |
333 | -0.4972776770591736 0.6027074456214905
334 |
335 | <_>
336 |
337 | 0 -1 112 -4507851 -411340929 -268437513 -67502145 -17350859
338 | -32901 -71344315 -29377
339 |
340 | -0.4383158981800079 0.5966237187385559
341 |
342 | <_>
343 |
344 | 0 -1 69 -75894785 -117379438 -239063587 -12538500 1485072126
345 | 2076233213 2123118847 801906927
346 |
347 | -0.6386105418205261 0.3977999985218048
348 |
349 | <_>
350 |
351 | 0 -1 19 -823480413 786628589 -16876049 -1364262914 242165211
352 | 1315930109 -696268833 -455082829
353 |
354 | -0.5512794256210327 0.4282079637050629
355 |
356 | <_>
357 |
358 | 0 -1 73 -521411968 6746762 -1396236286 -2038436114
359 | -185612509 57669627 -143132877 -1041235973
360 |
361 | -0.6418755054473877 0.3549866080284119
362 |
363 | <_>
364 |
365 | 0 -1 126 -478153869 1076028979 -1645895615 1365298272
366 | -557859073 -339771473 1442574528 -1058802061
367 |
368 | -0.4841901361942291 0.4668019413948059
369 |
370 | <_>
371 |
372 | 0 -1 45 -246350404 -1650402048 -1610612745 -788400696
373 | 1467604861 -2787397 1476263935 -4481349
374 |
375 | -0.5855734348297119 0.3879135847091675
376 |
377 | <_>
378 | 7
379 | -1.2237116098403931
380 |
381 |
382 | <_>
383 |
384 | 0 -1 114 -24819 1572863935 -16809993 -67108865 2146778388
385 | 1433927541 -268608444 -34865205
386 |
387 | -0.2518476545810700 0.7088654041290283
388 |
389 | <_>
390 |
391 | 0 -1 97 -1841359 -134271049 -32769 -5767369 -1116675 -2185
392 | -8231 -33603327
393 |
394 | -0.4303432404994965 0.5283288359642029
395 |
396 | <_>
397 |
398 | 0 -1 25 -1359507589 -1360593090 -1073778729 -269553812
399 | -809512977 1744707583 -41959433 -134758978
400 |
401 | -0.4259553551673889 0.5440809130668640
402 |
403 | <_>
404 |
405 | 0 -1 34 729753407 -134270989 -1140907329 -235200777
406 | 658456383 2147467263 -1140900929 -16385
407 |
408 | -0.5605589151382446 0.4220733344554901
409 |
410 | <_>
411 |
412 | 0 -1 134 -310380553 -420675595 -193005472 -353568129
413 | 1205338070 -990380036 887604324 -420544526
414 |
415 | -0.5192656517028809 0.4399855434894562
416 |
417 | <_>
418 |
419 | 0 -1 16 -1427119361 1978920959 -287119734 -487068946
420 | 114759245 -540578051 -707510259 -671660453
421 |
422 | -0.5013077259063721 0.4570254683494568
423 |
424 | <_>
425 |
426 | 0 -1 74 -738463762 -889949281 -328301948 -121832450
427 | -1142658284 -1863576559 2146417353 -263185
428 |
429 | -0.4631414115428925 0.4790246188640595
430 |
431 | <_>
432 | 7
433 | -0.5544230937957764
434 |
435 |
436 | <_>
437 |
438 | 0 -1 113 -76228780 -65538 -1 -67174401 -148007 -33 -221796
439 | -272842924
440 |
441 | -0.3949716091156006 0.6082032322883606
442 |
443 | <_>
444 |
445 | 0 -1 110 369147696 -1625232112 2138570036 -1189900 790708019
446 | -1212613127 799948719 -4456483
447 |
448 | -0.4855885505676270 0.4785369932651520
449 |
450 | <_>
451 |
452 | 0 -1 37 784215839 -290015241 536832799 -402984963
453 | -1342414991 -838864897 -176769 -268456129
454 |
455 | -0.4620285332202911 0.4989669024944305
456 |
457 | <_>
458 |
459 | 0 -1 41 -486418688 -171915327 -340294900 -21938 -519766032
460 | -772751172 -73096060 -585322623
461 |
462 | -0.6420643329620361 0.3624351918697357
463 |
464 | <_>
465 |
466 | 0 -1 117 -33554953 -475332625 -1423463824 -2077230421
467 | -4849669 -2080505925 -219032928 -1071915349
468 |
469 | -0.4820112884044647 0.4632140696048737
470 |
471 | <_>
472 |
473 | 0 -1 65 -834130468 -134217476 -1349314083 -1073803559
474 | -619913764 -1449131844 -1386890321 -1979118423
475 |
476 | -0.4465552568435669 0.5061788558959961
477 |
478 | <_>
479 |
480 | 0 -1 56 -285249779 1912569855 -16530 -1731022870 -1161904146
481 | -1342177297 -268439634 -1464078708
482 |
483 | -0.5190586447715759 0.4441480338573456
484 |
485 | <_>
486 | 7
487 | -0.7161560654640198
488 |
489 |
490 | <_>
491 |
492 | 0 -1 20 1246232575 1078001186 -10027057 60102 -277348353
493 | -43646987 -1210581153 1195769615
494 |
495 | -0.4323809444904327 0.5663768053054810
496 |
497 | <_>
498 |
499 | 0 -1 15 -778583572 -612921106 -578775890 -4036478
500 | -1946580497 -1164766570 -1986687009 -12103599
501 |
502 | -0.4588732719421387 0.4547033011913300
503 |
504 | <_>
505 |
506 | 0 -1 129 -1073759445 2013231743 -1363169553 -1082459201
507 | -1414286549 868185983 -1356133589 -1077936257
508 |
509 | -0.5218553543090820 0.4111092388629913
510 |
511 | <_>
512 |
513 | 0 -1 102 -84148365 -2093417722 -1204850272 564290299
514 | -67121221 -1342177350 -1309195902 -776734797
515 |
516 | -0.4920000731945038 0.4326725304126740
517 |
518 | <_>
519 |
520 | 0 -1 88 -25694458 67104495 -290216278 -168563037 2083877442
521 | 1702788383 -144191964 -234882162
522 |
523 | -0.4494568109512329 0.4448510706424713
524 |
525 | <_>
526 |
527 | 0 -1 59 -857980836 904682741 -1612267521 232279415
528 | 1550862252 -574825221 -357380888 -4579409
529 |
530 | -0.5180826783180237 0.3888972699642181
531 |
532 | <_>
533 |
534 | 0 -1 27 -98549440 -137838400 494928389 -246013630 939541351
535 | -1196072350 -620603549 2137216273
536 |
537 | -0.6081240773200989 0.3333222270011902
538 |
539 | <_>
540 | 8
541 | -0.6743940711021423
542 |
543 |
544 | <_>
545 |
546 | 0 -1 29 -150995201 2071191945 -1302151626 536934335
547 | -1059008937 914128709 1147328110 -268369925
548 |
549 | -0.1790193915367127 0.6605972051620483
550 |
551 | <_>
552 |
553 | 0 -1 128 -134509479 1610575703 -1342177289 1861484541
554 | -1107833788 1577058173 -333558568 -136319041
555 |
556 | -0.3681024610996246 0.5139749646186829
557 |
558 | <_>
559 |
560 | 0 -1 70 -1 1060154476 -1090984524 -630918524 -539492875
561 | 779616255 -839568424 -321
562 |
563 | -0.3217232525348663 0.6171553134918213
564 |
565 | <_>
566 |
567 | 0 -1 4 -269562385 -285029906 -791084350 -17923776 235286671
568 | 1275504943 1344390399 -966276889
569 |
570 | -0.4373284578323364 0.4358185231685638
571 |
572 | <_>
573 |
574 | 0 -1 76 17825984 -747628419 595427229 1474759671 575672208
575 | -1684005538 872217086 -1155858277
576 |
577 | -0.4404836893081665 0.4601220190525055
578 |
579 | <_>
580 |
581 | 0 -1 124 -336593039 1873735591 -822231622 -355795238
582 | -470820869 -1997537409 -1057132384 -1015285005
583 |
584 | -0.4294152259826660 0.4452161788940430
585 |
586 | <_>
587 |
588 | 0 -1 54 -834212130 -593694721 -322142257 -364892500
589 | -951029539 -302125121 -1615106053 -79249765
590 |
591 | -0.3973052501678467 0.4854526817798615
592 |
593 | <_>
594 |
595 | 0 -1 95 1342144479 2147431935 -33554561 -47873 -855685912 -1
596 | 1988052447 536827383
597 |
598 | -0.7054683566093445 0.2697997391223908
599 |
600 | <_>
601 | 9
602 | -1.2042298316955566
603 |
604 |
605 | <_>
606 |
607 | 0 -1 39 1431368960 -183437936 -537002499 -137497097
608 | 1560590321 -84611081 -2097193 -513
609 |
610 | -0.5905947685241699 0.5101932883262634
611 |
612 | <_>
613 |
614 | 0 -1 120 -1645259691 2105491231 2130706431 1458995007
615 | -8567536 -42483883 -33780003 -21004417
616 |
617 | -0.4449204802513123 0.4490709304809570
618 |
619 | <_>
620 |
621 | 0 -1 89 -612381022 -505806938 -362027516 -452985106
622 | 275854917 1920431639 -12600561 -134221825
623 |
624 | -0.4693818688392639 0.4061094820499420
625 |
626 | <_>
627 |
628 | 0 -1 14 -805573153 -161 -554172679 -530519488 -16779441
629 | 2000682871 -33604275 -150997129
630 |
631 | -0.3600351214408875 0.5056326985359192
632 |
633 | <_>
634 |
635 | 0 -1 67 6192 435166195 1467449341 2046691505 -1608493775
636 | -4755729 -1083162625 -71365637
637 |
638 | -0.4459891915321350 0.4132415652275085
639 |
640 | <_>
641 |
642 | 0 -1 86 -41689215 -3281034 1853357967 -420712635 -415924289
643 | -270209208 -1088293113 -825311232
644 |
645 | -0.4466069042682648 0.4135067760944367
646 |
647 | <_>
648 |
649 | 0 -1 80 -117391116 -42203396 2080374461 -188709 -542008165
650 | -356831940 -1091125345 -1073796897
651 |
652 | -0.3394956290721893 0.5658645033836365
653 |
654 | <_>
655 |
656 | 0 -1 75 -276830049 1378714472 -1342181951 757272098
657 | 1073740607 -282199241 -415761549 170896931
658 |
659 | -0.5346512198448181 0.3584479391574860
660 |
661 | <_>
662 |
663 | 0 -1 55 -796075825 -123166849 2113667055 -217530421
664 | -1107432194 -16385 -806359809 -391188771
665 |
666 | -0.4379335641860962 0.4123645126819611
667 |
668 | <_>
669 | 10
670 | -0.8402050137519836
671 |
672 |
673 | <_>
674 |
675 | 0 -1 71 -890246622 15525883 -487690486 47116238 -1212319899
676 | -1291847681 -68159890 -469829921
677 |
678 | -0.2670986354351044 0.6014143228530884
679 |
680 | <_>
681 |
682 | 0 -1 31 -1361180685 -1898008841 -1090588811 -285410071
683 | -1074016265 -840443905 2147221487 -262145
684 |
685 | -0.4149844348430634 0.4670888185501099
686 |
687 | <_>
688 |
689 | 0 -1 40 1426190596 1899364271 2142731795 -142607505
690 | -508232452 -21563393 -41960001 -65
691 |
692 | -0.4985891580581665 0.3719584941864014
693 |
694 | <_>
695 |
696 | 0 -1 109 -201337965 10543906 -236498096 -746195597
697 | 1974565825 -15204415 921907633 -190058309
698 |
699 | -0.4568729996681213 0.3965812027454376
700 |
701 | <_>
702 |
703 | 0 -1 130 -595026732 -656401928 -268649235 -571490699
704 | -440600392 -133131 -358810952 -2004088646
705 |
706 | -0.4770836830139160 0.3862601518630981
707 |
708 | <_>
709 |
710 | 0 -1 66 941674740 -1107882114 1332789109 -67691015
711 | -1360463693 -1556612430 -609108546 733546933
712 |
713 | -0.4877715110778809 0.3778986334800720
714 |
715 | <_>
716 |
717 | 0 -1 49 -17114945 -240061474 1552871558 -82775604 -932393844
718 | -1308544889 -532635478 -99042357
719 |
720 | -0.3721654713153839 0.4994400143623352
721 |
722 | <_>
723 |
724 | 0 -1 133 -655906006 1405502603 -939205164 1884929228
725 | -498859222 559417357 -1928559445 -286264385
726 |
727 | -0.3934195041656494 0.4769641458988190
728 |
729 | <_>
730 |
731 | 0 -1 0 -335837777 1860677295 -90 -1946186226 931096183
732 | 251612987 2013265917 -671232197
733 |
734 | -0.4323300719261169 0.4342164099216461
735 |
736 | <_>
737 |
738 | 0 -1 103 37769424 -137772680 374692301 2002666345 -536176194
739 | -1644484728 807009019 1069089930
740 |
741 | -0.4993278682231903 0.3665378093719482
742 |
743 | <_>
744 | 9
745 | -1.1974394321441650
746 |
747 |
748 | <_>
749 |
750 | 0 -1 43 -5505 2147462911 2143265466 -4511070 -16450 -257
751 | -201348440 -71333206
752 |
753 | -0.3310225307941437 0.5624626278877258
754 |
755 | <_>
756 |
757 | 0 -1 90 -136842268 -499330741 2015250980 -87107126
758 | -641665744 -788524639 -1147864792 -134892563
759 |
760 | -0.5266560912132263 0.3704403042793274
761 |
762 | <_>
763 |
764 | 0 -1 104 -146800880 -1780368555 2111170033 -140904684
765 | -16777551 -1946681885 -1646463595 -839131947
766 |
767 | -0.4171888828277588 0.4540435671806335
768 |
769 | <_>
770 |
771 | 0 -1 85 -832054034 -981663763 -301990281 -578814081
772 | -932319000 -1997406723 -33555201 -69206017
773 |
774 | -0.4556705355644226 0.3704262077808380
775 |
776 | <_>
777 |
778 | 0 -1 24 -118492417 -1209026825 1119023838 -1334313353
779 | 1112948738 -297319313 1378887291 -139469193
780 |
781 | -0.4182529747486115 0.4267231225967407
782 |
783 | <_>
784 |
785 | 0 -1 78 -1714382628 -2353704 -112094959 -549613092
786 | -1567058760 -1718550464 -342315012 -1074972227
787 |
788 | -0.3625369668006897 0.4684656262397766
789 |
790 | <_>
791 |
792 | 0 -1 5 -85219702 316836394 -33279 1904970288 2117267315
793 | -260901769 -621461759 -88607770
794 |
795 | -0.4742925167083740 0.3689507246017456
796 |
797 | <_>
798 |
799 | 0 -1 11 -294654041 -353603585 -1641159686 -50331921
800 | -2080899877 1145569279 -143132713 -152044037
801 |
802 | -0.3666271567344666 0.4580127298831940
803 |
804 | <_>
805 |
806 | 0 -1 32 1887453658 -638545712 -1877976819 -34320972
807 | -1071067983 -661345416 -583338277 1060190561
808 |
809 | -0.4567637443542481 0.3894708156585693
810 |
811 | <_>
812 | 9
813 | -0.5733128190040588
814 |
815 |
816 | <_>
817 |
818 | 0 -1 122 -994063296 1088745462 -318837116 -319881377
819 | 1102566613 1165490103 -121679694 -134744129
820 |
821 | -0.4055117964744568 0.5487945079803467
822 |
823 | <_>
824 |
825 | 0 -1 68 -285233233 -538992907 1811935199 -369234005 -529
826 | -20593 -20505 -1561401854
827 |
828 | -0.3787897229194641 0.4532003402709961
829 |
830 | <_>
831 |
832 | 0 -1 58 -1335245632 1968917183 1940861695 536816369
833 | -1226071367 -570908176 457026619 1000020667
834 |
835 | -0.4258328974246979 0.4202791750431061
836 |
837 | <_>
838 |
839 | 0 -1 94 -1360318719 -1979797897 -50435249 -18646473
840 | -608879292 -805306691 -269304244 -17840167
841 |
842 | -0.4561023116111755 0.4002747833728790
843 |
844 | <_>
845 |
846 | 0 -1 87 2062765935 -16449 -1275080721 -16406 45764335
847 | -1090552065 -772846337 -570464322
848 |
849 | -0.4314672648906708 0.4086346626281738
850 |
851 | <_>
852 |
853 | 0 -1 127 -536896021 1080817663 -738234288 -965478709
854 | -2082767969 1290855887 1993822934 -990381609
855 |
856 | -0.4174543321132660 0.4249868988990784
857 |
858 | <_>
859 |
860 | 0 -1 3 -818943025 168730891 -293610428 -79249354 669224671
861 | 621166734 1086506807 1473768907
862 |
863 | -0.4321364760398865 0.4090838730335236
864 |
865 | <_>
866 |
867 | 0 -1 79 -68895696 -67107736 -1414315879 -841676168
868 | -619843344 -1180610531 -1081990469 1043203389
869 |
870 | -0.5018386244773865 0.3702533841133118
871 |
872 | <_>
873 |
874 | 0 -1 116 -54002134 -543485719 -2124882422 -1437445858
875 | -115617074 -1195787391 -1096024366 -2140472445
876 |
877 | -0.5037505626678467 0.3564981222152710
878 |
879 | <_>
880 | 9
881 | -0.4892596900463104
882 |
883 |
884 | <_>
885 |
886 | 0 -1 132 -67113211 2003808111 1862135111 846461923 -2752
887 | 2002237273 -273154752 1937223539
888 |
889 | -0.2448196411132813 0.5689709186553955
890 |
891 | <_>
892 |
893 | 0 -1 62 1179423888 -78064940 -611839555 -539167899
894 | -1289358360 -1650810108 -892540499 -1432827684
895 |
896 | -0.4633283913135529 0.3587929606437683
897 |
898 | <_>
899 |
900 | 0 -1 23 -285212705 -78450761 -656212031 -264050110 -27787425
901 | -1334349961 -547662981 -135796924
902 |
903 | -0.3731099069118500 0.4290455579757690
904 |
905 | <_>
906 |
907 | 0 -1 77 341863476 403702016 -550588417 1600194541
908 | -1080690735 951127993 -1388580949 -1153717473
909 |
910 | -0.3658909499645233 0.4556473195552826
911 |
912 | <_>
913 |
914 | 0 -1 22 -586880702 -204831512 -100644596 -39319550
915 | -1191150794 705692513 457203315 -75806957
916 |
917 | -0.5214384198188782 0.3221037387847900
918 |
919 | <_>
920 |
921 | 0 -1 72 -416546870 545911370 -673716192 -775559454
922 | -264113598 139424 -183369982 -204474641
923 |
924 | -0.4289036989212036 0.4004956185817719
925 |
926 | <_>
927 |
928 | 0 -1 50 -1026505020 -589692154 -1740499937 -1563770497
929 | 1348491006 -60710713 -1109853489 -633909413
930 |
931 | -0.4621542394161224 0.3832748532295227
932 |
933 | <_>
934 |
935 | 0 -1 108 -1448872304 -477895040 -1778390608 -772418127
936 | -1789923416 -1612057181 -805306693 -1415842113
937 |
938 | -0.3711548447608948 0.4612701535224915
939 |
940 | <_>
941 |
942 | 0 -1 92 407905424 -582449988 52654751 -1294472 -285103725
943 | -74633006 1871559083 1057955850
944 |
945 | -0.5180652141571045 0.3205870389938355
946 |
947 | <_>
948 | 10
949 | -0.5911940932273865
950 |
951 |
952 | <_>
953 |
954 | 0 -1 81 4112 -1259563825 -846671428 -100902460 1838164148
955 | -74153752 -90653988 -1074263896
956 |
957 | -0.2592592537403107 0.5873016119003296
958 |
959 | <_>
960 |
961 | 0 -1 1 -285216785 -823206977 -1085589 -1081346 1207959293
962 | 1157103471 2097133565 -2097169
963 |
964 | -0.3801195919513702 0.4718827307224274
965 |
966 | <_>
967 |
968 | 0 -1 121 -12465 -536875169 2147478367 2130706303 -37765492
969 | -866124467 -318782328 -1392509185
970 |
971 | -0.3509117066860199 0.5094807147979736
972 |
973 | <_>
974 |
975 | 0 -1 38 2147449663 -20741 -16794757 1945873146 -16710 -1
976 | -8406341 -67663041
977 |
978 | -0.4068757295608521 0.4130136370658875
979 |
980 | <_>
981 |
982 | 0 -1 17 -155191713 866117231 1651407483 548272812 -479201468
983 | -447742449 1354229504 -261884429
984 |
985 | -0.4557141065597534 0.3539792001247406
986 |
987 | <_>
988 |
989 | 0 -1 100 -225319378 -251682065 -492783986 -792341777
990 | -1287261695 1393643841 -11274182 -213909521
991 |
992 | -0.4117803275585175 0.4118592441082001
993 |
994 | <_>
995 |
996 | 0 -1 63 -382220122 -2002072729 -51404800 -371201558
997 | -923011069 -2135301457 -2066104743 -1042557441
998 |
999 | -0.4008397758007050 0.4034757018089294
1000 |
1001 | <_>
1002 |
1003 | 0 -1 101 -627353764 -48295149 1581203952 -436258614
1004 | -105268268 -1435893445 -638126888 -1061107126
1005 |
1006 | -0.5694189667701721 0.2964762747287750
1007 |
1008 | <_>
1009 |
1010 | 0 -1 118 -8399181 1058107691 -621022752 -251003468 -12582915
1011 | -574619739 -994397789 -1648362021
1012 |
1013 | -0.3195341229438782 0.5294018983840942
1014 |
1015 | <_>
1016 |
1017 | 0 -1 92 -348343812 -1078389516 1717960437 364735981
1018 | -1783841602 -4883137 -457572354 -1076950384
1019 |
1020 | -0.3365339040756226 0.5067458748817444
1021 |
1022 | <_>
1023 | 10
1024 | -0.7612916231155396
1025 |
1026 |
1027 | <_>
1028 |
1029 | 0 -1 10 -1976661318 -287957604 -1659497122 -782068 43591089
1030 | -453637880 1435470000 -1077438561
1031 |
1032 | -0.4204545319080353 0.5165745615959168
1033 |
1034 | <_>
1035 |
1036 | 0 -1 131 -67110925 14874979 -142633168 -1338923040
1037 | 2046713291 -2067933195 1473503712 -789579837
1038 |
1039 | -0.3762553930282593 0.4075302779674530
1040 |
1041 | <_>
1042 |
1043 | 0 -1 83 -272814301 -1577073 -1118685 -305156120 -1052289
1044 | -1073813756 -538971154 -355523038
1045 |
1046 | -0.4253497421741486 0.3728055357933044
1047 |
1048 | <_>
1049 |
1050 | 0 -1 135 -2233 -214486242 -538514758 573747007 -159390971
1051 | 1994225489 -973738098 -203424005
1052 |
1053 | -0.3601998090744019 0.4563256204128265
1054 |
1055 | <_>
1056 |
1057 | 0 -1 115 -261031688 -1330369299 -641860609 1029570301
1058 | -1306461192 -1196149518 -1529767778 683139823
1059 |
1060 | -0.4034293889999390 0.4160816967487335
1061 |
1062 | <_>
1063 |
1064 | 0 -1 64 -572993608 -34042628 -417865 -111109 -1433365268
1065 | -19869715 -1920939864 -1279457063
1066 |
1067 | -0.3620899617671967 0.4594142735004425
1068 |
1069 | <_>
1070 |
1071 | 0 -1 36 -626275097 -615256993 1651946018 805366393
1072 | 2016559730 -430780849 -799868165 -16580645
1073 |
1074 | -0.3903816640377045 0.4381459355354309
1075 |
1076 | <_>
1077 |
1078 | 0 -1 93 1354797300 -1090957603 1976418270 -1342502178
1079 | -1851873892 -1194637077 -1153521668 -1108399474
1080 |
1081 | -0.3591445386409760 0.4624078869819641
1082 |
1083 | <_>
1084 |
1085 | 0 -1 91 68157712 1211368313 -304759523 1063017136 798797750
1086 | -275513546 648167355 -1145357350
1087 |
1088 | -0.4297670423984528 0.4023293554782867
1089 |
1090 | <_>
1091 |
1092 | 0 -1 107 -546318240 -1628569602 -163577944 -537002306
1093 | -545456389 -1325465645 -380446736 -1058473386
1094 |
1095 | -0.5727006793022156 0.2995934784412384
1096 |
1097 | <_>
1098 |
1099 | 0 0 3 5
1100 | <_>
1101 |
1102 | 0 0 4 2
1103 | <_>
1104 |
1105 | 0 0 6 3
1106 | <_>
1107 |
1108 | 0 1 2 3
1109 | <_>
1110 |
1111 | 0 1 3 3
1112 | <_>
1113 |
1114 | 0 1 3 7
1115 | <_>
1116 |
1117 | 0 4 3 3
1118 | <_>
1119 |
1120 | 0 11 3 4
1121 | <_>
1122 |
1123 | 0 12 8 4
1124 | <_>
1125 |
1126 | 0 14 4 3
1127 | <_>
1128 |
1129 | 1 0 5 3
1130 | <_>
1131 |
1132 | 1 1 2 2
1133 | <_>
1134 |
1135 | 1 3 3 1
1136 | <_>
1137 |
1138 | 1 7 4 4
1139 | <_>
1140 |
1141 | 1 12 2 2
1142 | <_>
1143 |
1144 | 1 13 4 1
1145 | <_>
1146 |
1147 | 1 14 4 3
1148 | <_>
1149 |
1150 | 1 17 3 2
1151 | <_>
1152 |
1153 | 2 0 2 3
1154 | <_>
1155 |
1156 | 2 1 2 2
1157 | <_>
1158 |
1159 | 2 2 4 6
1160 | <_>
1161 |
1162 | 2 3 4 4
1163 | <_>
1164 |
1165 | 2 7 2 1
1166 | <_>
1167 |
1168 | 2 11 2 3
1169 | <_>
1170 |
1171 | 2 17 3 2
1172 | <_>
1173 |
1174 | 3 0 2 2
1175 | <_>
1176 |
1177 | 3 1 7 3
1178 | <_>
1179 |
1180 | 3 7 2 1
1181 | <_>
1182 |
1183 | 3 7 2 4
1184 | <_>
1185 |
1186 | 3 18 2 2
1187 | <_>
1188 |
1189 | 4 0 2 3
1190 | <_>
1191 |
1192 | 4 3 2 1
1193 | <_>
1194 |
1195 | 4 6 2 1
1196 | <_>
1197 |
1198 | 4 6 2 5
1199 | <_>
1200 |
1201 | 4 7 5 2
1202 | <_>
1203 |
1204 | 4 8 4 3
1205 | <_>
1206 |
1207 | 4 18 2 2
1208 | <_>
1209 |
1210 | 5 0 2 2
1211 | <_>
1212 |
1213 | 5 3 4 4
1214 | <_>
1215 |
1216 | 5 6 2 5
1217 | <_>
1218 |
1219 | 5 9 2 2
1220 | <_>
1221 |
1222 | 5 10 2 2
1223 | <_>
1224 |
1225 | 6 3 4 4
1226 | <_>
1227 |
1228 | 6 4 4 3
1229 | <_>
1230 |
1231 | 6 5 2 3
1232 | <_>
1233 |
1234 | 6 5 2 5
1235 | <_>
1236 |
1237 | 6 5 4 3
1238 | <_>
1239 |
1240 | 6 6 4 2
1241 | <_>
1242 |
1243 | 6 6 4 4
1244 | <_>
1245 |
1246 | 6 18 1 2
1247 | <_>
1248 |
1249 | 6 21 2 1
1250 | <_>
1251 |
1252 | 7 0 3 7
1253 | <_>
1254 |
1255 | 7 4 2 3
1256 | <_>
1257 |
1258 | 7 9 5 1
1259 | <_>
1260 |
1261 | 7 21 2 1
1262 | <_>
1263 |
1264 | 8 0 1 4
1265 | <_>
1266 |
1267 | 8 5 2 2
1268 | <_>
1269 |
1270 | 8 5 3 2
1271 | <_>
1272 |
1273 | 8 17 3 1
1274 | <_>
1275 |
1276 | 8 18 1 2
1277 | <_>
1278 |
1279 | 9 0 5 3
1280 | <_>
1281 |
1282 | 9 2 2 6
1283 | <_>
1284 |
1285 | 9 5 1 1
1286 | <_>
1287 |
1288 | 9 11 1 1
1289 | <_>
1290 |
1291 | 9 16 1 1
1292 | <_>
1293 |
1294 | 9 16 2 1
1295 | <_>
1296 |
1297 | 9 17 1 1
1298 | <_>
1299 |
1300 | 9 18 1 1
1301 | <_>
1302 |
1303 | 10 5 1 2
1304 | <_>
1305 |
1306 | 10 5 3 3
1307 | <_>
1308 |
1309 | 10 7 1 5
1310 | <_>
1311 |
1312 | 10 8 1 1
1313 | <_>
1314 |
1315 | 10 9 1 1
1316 | <_>
1317 |
1318 | 10 10 1 1
1319 | <_>
1320 |
1321 | 10 10 1 2
1322 | <_>
1323 |
1324 | 10 14 3 3
1325 | <_>
1326 |
1327 | 10 15 1 1
1328 | <_>
1329 |
1330 | 10 15 2 1
1331 | <_>
1332 |
1333 | 10 16 1 1
1334 | <_>
1335 |
1336 | 10 16 2 1
1337 | <_>
1338 |
1339 | 10 17 1 1
1340 | <_>
1341 |
1342 | 10 21 1 1
1343 | <_>
1344 |
1345 | 11 3 2 2
1346 | <_>
1347 |
1348 | 11 5 1 2
1349 | <_>
1350 |
1351 | 11 5 3 3
1352 | <_>
1353 |
1354 | 11 5 4 6
1355 | <_>
1356 |
1357 | 11 6 1 1
1358 | <_>
1359 |
1360 | 11 7 2 2
1361 | <_>
1362 |
1363 | 11 8 1 2
1364 | <_>
1365 |
1366 | 11 10 1 1
1367 | <_>
1368 |
1369 | 11 10 1 2
1370 | <_>
1371 |
1372 | 11 15 1 1
1373 | <_>
1374 |
1375 | 11 17 1 1
1376 | <_>
1377 |
1378 | 11 18 1 1
1379 | <_>
1380 |
1381 | 12 0 2 2
1382 | <_>
1383 |
1384 | 12 1 2 5
1385 | <_>
1386 |
1387 | 12 2 4 1
1388 | <_>
1389 |
1390 | 12 3 1 3
1391 | <_>
1392 |
1393 | 12 7 3 4
1394 | <_>
1395 |
1396 | 12 10 3 2
1397 | <_>
1398 |
1399 | 12 11 1 1
1400 | <_>
1401 |
1402 | 12 12 3 2
1403 | <_>
1404 |
1405 | 12 14 4 3
1406 | <_>
1407 |
1408 | 12 17 1 1
1409 | <_>
1410 |
1411 | 12 21 2 1
1412 | <_>
1413 |
1414 | 13 6 2 5
1415 | <_>
1416 |
1417 | 13 7 3 5
1418 | <_>
1419 |
1420 | 13 11 3 2
1421 | <_>
1422 |
1423 | 13 17 2 2
1424 | <_>
1425 |
1426 | 13 17 3 2
1427 | <_>
1428 |
1429 | 13 18 1 2
1430 | <_>
1431 |
1432 | 13 18 2 2
1433 | <_>
1434 |
1435 | 14 0 2 2
1436 | <_>
1437 |
1438 | 14 1 1 3
1439 | <_>
1440 |
1441 | 14 2 3 2
1442 | <_>
1443 |
1444 | 14 7 2 1
1445 | <_>
1446 |
1447 | 14 13 2 1
1448 | <_>
1449 |
1450 | 14 13 3 3
1451 | <_>
1452 |
1453 | 14 17 2 2
1454 | <_>
1455 |
1456 | 15 0 2 2
1457 | <_>
1458 |
1459 | 15 0 2 3
1460 | <_>
1461 |
1462 | 15 4 3 2
1463 | <_>
1464 |
1465 | 15 4 3 6
1466 | <_>
1467 |
1468 | 15 6 3 2
1469 | <_>
1470 |
1471 | 15 11 3 4
1472 | <_>
1473 |
1474 | 15 13 3 2
1475 | <_>
1476 |
1477 | 15 17 2 2
1478 | <_>
1479 |
1480 | 15 17 3 2
1481 | <_>
1482 |
1483 | 16 1 2 3
1484 | <_>
1485 |
1486 | 16 3 2 4
1487 | <_>
1488 |
1489 | 16 6 1 1
1490 | <_>
1491 |
1492 | 16 16 2 2
1493 | <_>
1494 |
1495 | 17 1 2 2
1496 | <_>
1497 |
1498 | 17 1 2 5
1499 | <_>
1500 |
1501 | 17 12 2 2
1502 | <_>
1503 |
1504 | 18 0 2 2
1505 |
1506 |
--------------------------------------------------------------------------------
/JavaFX-OpenCV/src/application/FXController.java:
--------------------------------------------------------------------------------
1 | package application;
2 |
3 | import java.awt.image.BufferedImage;
4 | import java.awt.image.DataBufferByte;
5 |
6 | import org.opencv.core.Core;
7 | import org.opencv.core.Mat;
8 | import org.opencv.core.MatOfRect;
9 | import org.opencv.core.Point;
10 | import org.opencv.core.Rect;
11 | import org.opencv.core.Scalar;
12 | import org.opencv.core.Size;
13 | import org.opencv.imgproc.Imgproc;
14 | import org.opencv.objdetect.CascadeClassifier;
15 | import org.opencv.videoio.VideoCapture;
16 |
17 | import javafx.application.Platform;
18 | import javafx.embed.swing.SwingFXUtils;
19 | import javafx.event.ActionEvent;
20 | import javafx.fxml.FXML;
21 | import javafx.scene.control.Button;
22 | import javafx.scene.image.Image;
23 | import javafx.scene.image.ImageView;
24 | import javafx.scene.layout.Pane;
25 | import javafx.scene.text.Text;
26 |
27 | public class FXController {
28 | // the FXML button
29 | @FXML
30 | private Button button;
31 | // the FXML image view
32 | @FXML
33 | private ImageView currentFrame;
34 |
35 | @FXML
36 | private Text fps;
37 |
38 | @FXML
39 | private Pane ImageViewPane;
40 |
41 | // the OpenCV object that realizes the video capture
42 | private VideoCapture capture = new VideoCapture(0);
43 | // a flag to change the button behavior
44 | private static boolean cameraActive = false;
45 |
46 | // Settings
47 |
48 | // Set video device
49 |
50 | private CascadeClassifier face_cascade;
51 | private long detectedFaces;
52 | public BufferedImage croppedImage;
53 |
54 | public void initController(int vd) {
55 |
56 | face_cascade = new CascadeClassifier("C:/Users/Admin/Documents/opencv/sources/data/haarcascades/haarcascade_frontalcatface.xml");
57 | if(face_cascade.empty()){
58 | System.out.println("--(!)Error loading A\n");
59 | return;
60 | }
61 | else{
62 | System.out.println("Face classifier loooaaaaaded up");
63 | }
64 | }
65 |
66 | /**
67 | * The action triggered by pushing the button on the GUI
68 | *
69 | * @param event
70 | * the push button event
71 | */
72 | @FXML
73 | protected void startCamera(ActionEvent event) {
74 | try {
75 | if (!cameraActive) {
76 | // start the video capture
77 | //this.capture.open(videodevice);
78 |
79 | // is the video stream available?
80 | if (this.capture.isOpened()) {
81 | cameraActive = true;
82 | Thread processFrame = new Thread(new Runnable() {
83 |
84 | @Override
85 | public void run() {
86 | while (cameraActive) {
87 | try {
88 | //Grab Frame
89 | Mat matToShow = grabFrame();
90 | //Process Frame
91 | matToShow = processMat(detect(matToShow));
92 | // convert the Mat object (OpenCV) to Image (JavaFX)
93 | Image imageToShow = mat2Image(matToShow);
94 | //Update ImageView
95 | setFrametoImageView(imageToShow);
96 | //Update the UI
97 | updateUIObjects();
98 |
99 | } catch (Exception e1) {
100 | System.out.println("Error on Update " + e1);
101 | }
102 | // Sleep for lower FPS/updateRate
103 | // try {
104 | // Thread.sleep(10);
105 | // } catch (InterruptedException e) {
106 | // // TODO Auto-generated catch block
107 | // e.printStackTrace();
108 | // }
109 |
110 | }
111 | System.out.println("Thread processFrame closed");
112 | try {
113 | capture.release();
114 | updateUIObjects();
115 | setFrametoImageView(null);
116 | } catch (Exception e) {
117 | }
118 |
119 | }
120 |
121 | });
122 | processFrame.setDaemon(true);
123 | processFrame.setName("processFrame");
124 | processFrame.start();
125 |
126 | // update the button content
127 | this.button.setText("Stop Camera");
128 | } else {
129 | // log the error
130 | throw new Exception("Impossible to open the camera connection");
131 | }
132 | } else {
133 | // the camera is not active at this point
134 | cameraActive = false;
135 | // update again the button content
136 | this.button.setText("Start Camera");
137 | }
138 | } catch (Exception e) {
139 | e.printStackTrace();
140 | cameraActive = false;
141 | this.button.setText("Start Camera");
142 | }
143 | }
144 |
145 | /**
146 | * Always Update UI from main thread
147 | */
148 | private void setFrametoImageView(Image frame) {
149 | Platform.runLater(() -> {
150 | currentFrame.setImage(frame);
151 | currentFrame.setFitWidth(ImageViewPane.getWidth());
152 | currentFrame.setFitHeight((ImageViewPane.getHeight()));
153 | // set Image height/width by window size
154 | });
155 |
156 | }
157 |
158 | public Mat detect(Mat inputframe){
159 | Mat mRgba=new Mat();
160 | Mat mGrey=new Mat();
161 | MatOfRect faces = new MatOfRect();
162 |
163 | inputframe.copyTo(mRgba);
164 | inputframe.copyTo(mGrey);
165 |
166 | Imgproc.cvtColor( mRgba, mGrey, Imgproc.COLOR_BGR2GRAY);
167 | Imgproc.equalizeHist( mGrey, mGrey );
168 |
169 | face_cascade.detectMultiScale(mGrey, faces);
170 | detectedFaces = faces.toArray().length;
171 |
172 | System.out.println(String.format("Detected %s faces", detectedFaces));
173 |
174 | for(Rect rect:faces.toArray()){
175 | Point center= new Point(rect.x + rect.width*0.5, rect.y + rect.height*0.5 );
176 | Imgproc.ellipse( mRgba, center, new Size( rect.width*0.5, rect.height*0.5), 0, 0, 360, new Scalar( 255, 0, 255 ), 4, 8, 0 );
177 | //Core.rectangle(mRgba, new Point(rect.width*0.5, rect.height*0.5), center, new Scalar( 0, 255, 255 ), 4, 8, 0);
178 | croppedImage = Mat2BufferedImage(mGrey);
179 | }
180 | return mRgba;
181 | }
182 |
183 | public BufferedImage Mat2BufferedImage(Mat m){
184 | // source: http://answers.opencv.org/question/10344/opencv-java-load-image-to-gui/
185 | // Fastest code
186 | // The output can be assigned either to a BufferedImage or to an Image
187 |
188 | int type = BufferedImage.TYPE_BYTE_GRAY;
189 | if ( m.channels() > 1 ) {
190 | type = BufferedImage.TYPE_3BYTE_BGR;
191 | }
192 | int bufferSize = m.channels()*m.cols()*m.rows();
193 | byte [] b = new byte[bufferSize];
194 | m.get(0,0,b); // get all the pixels
195 | BufferedImage image = new BufferedImage(m.cols(),m.rows(), type);
196 | final byte[] targetPixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
197 | System.arraycopy(b, 0, targetPixels, 0, b.length);
198 | return image;
199 |
200 | }
201 |
202 | /**
203 | * Always Update UI from main thread
204 | */
205 | private void updateUIObjects() {
206 | Platform.runLater(() -> {
207 | // Update UI Objects like: Textfield.setText() , Button.set..() ,
208 | // Window.Resize...()
209 | //Set FPS
210 | fps.setText(""+capture.get(5));
211 | });
212 | }
213 |
214 | /**
215 | * Get a frame from the opened video stream (if any)
216 | *
217 | * @return the {@link Mat} to show
218 | */
219 | private Mat grabFrame() {
220 | // init everything
221 | Mat frame = new Mat();
222 |
223 | // check if the capture is open
224 | if (this.capture.isOpened()) {
225 | try {
226 | // read the current frame
227 | this.capture.read(frame);
228 |
229 | // if the frame is not empty, process it
230 | if (!frame.empty()) {
231 |
232 | }
233 |
234 | } catch (Exception e) {
235 | // log the error
236 | System.err.println("Exception during the image elaboration: " + e);
237 | }
238 | }
239 |
240 | return frame;
241 | }
242 |
243 | /**
244 | * Process a Frame
245 | *
246 | * @return the {@link Image} to show
247 | */
248 | private Mat processMat(Mat matToShow) {
249 | // convert the image to gray scale
250 | //Imgproc.cvtColor(matToShow, matToShow, Imgproc.COLOR_BGR2GRAY);
251 | return matToShow;
252 | }
253 |
254 | /**
255 | * Convert a Mat object (OpenCV) in the corresponding Image for JavaFX
256 | *
257 | * @param frame
258 | * the {@link Mat} representing the current frame
259 | * @return the {@link Image} to show
260 | */
261 | private Image mat2Image(Mat frame) {
262 | try {
263 | return SwingFXUtils.toFXImage(matToBufferedImage(frame), null);
264 | } catch (Exception e) {
265 | System.out.println("Cant convert mat" + e);
266 | return null;
267 | }
268 | }
269 |
270 | public BufferedImage matToBufferedImage(Mat matBGR) {
271 | int width = matBGR.width(), height = matBGR.height(), channels = matBGR.channels();
272 | byte[] sourcePixels = new byte[width * height * channels];
273 | matBGR.get(0, 0, sourcePixels);
274 | BufferedImage image;
275 | if (matBGR.channels() > 1) {
276 | image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
277 | } else {
278 | image = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);
279 | }
280 | final byte[] targetPixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
281 | System.arraycopy(sourcePixels, 0, targetPixels, 0, sourcePixels.length);
282 | return image;
283 | }
284 |
285 | public void setClosed() {
286 | //Close thread on window close
287 | cameraActive = false;
288 | }
289 |
290 | }
291 |
--------------------------------------------------------------------------------
/JavaFX-OpenCV/src/application/FirstJFX.fxml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/JavaFX-OpenCV/src/application/Main.java:
--------------------------------------------------------------------------------
1 | package application;
2 |
3 | import org.opencv.core.Core;
4 |
5 | import javafx.application.Application;
6 | import javafx.event.EventHandler;
7 | import javafx.stage.Stage;
8 | import javafx.stage.WindowEvent;
9 | import javafx.scene.Scene;
10 | import javafx.scene.layout.BorderPane;
11 | import javafx.fxml.FXMLLoader;
12 |
13 | public class Main extends Application
14 | {
15 | @Override
16 | public void start(Stage primaryStage)
17 | {
18 | try
19 | {
20 | // load the FXML resource
21 | FXMLLoader loader = new FXMLLoader(getClass().getResource("FirstJFX.fxml"));
22 | // store the root element so that the controllers can use it
23 | BorderPane rootElement = (BorderPane) loader.load();
24 | // create and style a scene
25 | Scene scene = new Scene(rootElement, 800, 600);
26 | scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
27 | // create the stage with the given title and the previously created
28 | // scene
29 | primaryStage.setTitle("JavaFX meets OpenCV");
30 | primaryStage.setScene(scene);
31 | // show the GUI
32 | primaryStage.show();
33 |
34 | // init the controller
35 | final FXController controller = loader.getController();
36 |
37 | // Set video device
38 | int videodevice = 1;
39 | controller.initController(videodevice);
40 |
41 | primaryStage.setOnCloseRequest((new EventHandler() {
42 | public void handle(WindowEvent we) {
43 | controller.setClosed();
44 | System.out.println("Closed");
45 | }
46 | }));
47 |
48 | }
49 | catch (Exception e)
50 | {
51 | e.printStackTrace();
52 | }
53 | }
54 |
55 | /**
56 | * For launching the application...
57 | */
58 | public static void main(String[] args)
59 | {
60 | // load the native OpenCV library
61 | System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
62 |
63 | launch(args);
64 | }
65 | }
--------------------------------------------------------------------------------
/JavaFX-OpenCV/src/application/application.css:
--------------------------------------------------------------------------------
1 | /* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Alpay Yildirim
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 🐱 Cat Face Detector with OpenCV and JavaFX ☕️
2 |
3 | This is a Cat Face Detector written in Java using **OpenCV (Open Source Computer Vision)**.
4 | It's a small application, but it shows you how to:
5 |
6 | - Access to the camera
7 | - Make pictures with the camera and render it as a video (FPS / frames per second)
8 | - Check pictures for patterns (in this case cat faces 🐱)
9 | - Design a GUI for **OpenCV** Applications with JavaFX
10 | - Get the number of detected Cat Faces 🐱
11 |
12 | ## 🐱 Examples (Images) 🐱
13 |
14 | The Face Detecting capabilities of **OpenCV (Open Source Computer Vision)** are working very well.
15 | It detects the faces that are detectable, when somebody doesn't look at the camera, the face isn't really detectable, but there are solutions to fix this problem. (Add more Patterns to search in Images as an example, but the application logically gets slower) (often a extended version of the haarcascade is available)
16 |
17 | 
18 |
19 | 
20 |
21 | You can see here very clearly how **OpenCV** works, by detecting patterns in faces.
22 | The important Thing about this is, that it still was possible for the application to recognise the Cat Face Pattern (haarcascade_frontalcatface.xml) in different cats. 🐱
23 |
24 | # ☕️ How to import a JavaFX Application to Eclipse ☕️
25 |
26 | 1. Open your existing workspace in Eclipse.
27 | 2. In the Eclipse menu, choose **File -> Import**.
28 | 3. Expand the General folder and select Existing Projects into Workspace, then click Next.
29 | 4. You should now see the Import Projects dialog.
30 | 5. Select Finish.
31 |
32 | 
33 |
--------------------------------------------------------------------------------