Toggle navigation
Toggle navigation
This project
Loading...
Sign in
2020-2-capstone-design2
/
2014104149
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Graduate
2020-11-23 17:56:31 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
500c5fba07368624b521c771a0da781d5ad2db3d
500c5fba
1 parent
cbb56140
Opencv.js
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
50 additions
and
5 deletions
flask/templates/index.html
flask/templates/index.html
View file @
500c5fb
...
...
@@ -7,13 +7,13 @@
<style>
#container
{
margin
:
0px
auto
;
width
:
50
0px
;
height
:
375
px
;
width
:
64
0px
;
height
:
480
px
;
border
:
10px
#333
solid
;
}
#videoElement
{
width
:
50
0px
;
height
:
375
px
;
width
:
64
0px
;
height
:
480
px
;
background-color
:
#666
;
}
</style>
...
...
@@ -28,8 +28,9 @@
</canvas>
</div>
<script
type=
'text/javascript'
src=
{{url_for('static',
filename=
'js/opencv.js'
)}}
>
<
script
type
=
'text/javascript'
>
var
video
=
document
.
querySelector
(
"#videoElement"
);
let
video
=
document
.
getElementById
(
'videoElement'
);
if
(
navigator
.
mediaDevices
.
getUserMedia
){
navigator
.
mediaDevices
.
getUserMedia
({
video
:
true
})
.
then
(
function
(
stream
)
{
...
...
@@ -39,5 +40,49 @@ if (navigator.mediaDevices.getUserMedia){
});
}
</script>
<script>
let
src
=
new
cv
.
Mat
(
video
.
height
,
video
.
width
,
cv
.
CV_8UC4
);
let
dst
=
new
cv
.
Mat
(
video
.
height
,
video
.
width
,
cv
.
CV_8UC4
);
let
gray
=
new
cv
.
Mat
();
let
cap
=
new
cv
.
RectVector
();
let
classifier
=
new
cv
.
CascadeClassifier
();
classifier
.
load
({{
url_for
(
'static'
,
filename
=
'js/haarcascade_frontalface_default.xml'
)}})
const
FPS
=
30
;
function
processVideo
()
{
try
{
if
(
!
streaming
)
{
// clean and stop.
src
.
delete
();
dst
.
delete
();
gray
.
delete
();
faces
.
delete
();
classifier
.
delete
();
return
;
}
let
begin
=
Date
.
now
();
// start processing.
cap
.
read
(
src
);
src
.
copyTo
(
dst
);
cv
.
cvtColor
(
dst
,
gray
,
cv
.
COLOR_RGBA2GRAY
,
0
);
// detect faces.
classifier
.
detectMultiScale
(
gray
,
faces
,
1.1
,
3
,
0
);
// draw faces.
for
(
let
i
=
0
;
i
<
faces
.
size
();
++
i
)
{
let
face
=
faces
.
get
(
i
);
let
point1
=
new
cv
.
Point
(
face
.
x
,
face
.
y
);
let
point2
=
new
cv
.
Point
(
face
.
x
+
face
.
width
,
face
.
y
+
face
.
height
);
cv
.
rectangle
(
dst
,
point1
,
point2
,
[
255
,
0
,
0
,
255
]);
}
cv
.
imshow
(
'canvasOutput'
,
dst
);
// schedule the next one.
let
delay
=
1000
/
FPS
-
(
Date
.
now
()
-
begin
);
setTimeout
(
processVideo
,
delay
);
}
catch
(
err
)
{
utils
.
printError
(
err
);
}
};
// schedule the first one.
setTimeout
(
processVideo
,
0
);
</script>
</body>
</html>
...
...
Please
register
or
login
to post a comment