Showing
2 changed files
with
17 additions
and
11 deletions
... | @@ -39,9 +39,9 @@ function init() | ... | @@ -39,9 +39,9 @@ function init() |
39 | load_cascade(); | 39 | load_cascade(); |
40 | }); | 40 | }); |
41 | }).catch(function (err0r) { | 41 | }).catch(function (err0r) { |
42 | - console.log("Something went wrong!"); | 42 | + console.log("Something went wrong!"); |
43 | - streaming = false; | 43 | + streaming = false; |
44 | - }); | 44 | + }); |
45 | } | 45 | } |
46 | } | 46 | } |
47 | 47 | ||
... | @@ -63,7 +63,6 @@ function main() | ... | @@ -63,7 +63,6 @@ function main() |
63 | let canvasContext = canvasOutput.getContext('2d'); | 63 | let canvasContext = canvasOutput.getContext('2d'); |
64 | let src = new cv.Mat(video.height, video.width, cv.CV_8UC4); | 64 | let src = new cv.Mat(video.height, video.width, cv.CV_8UC4); |
65 | let dst = new cv.Mat(video.height, video.width, cv.CV_8UC4); | 65 | let dst = new cv.Mat(video.height, video.width, cv.CV_8UC4); |
66 | - // let gray = new cv.Mat(); | ||
67 | let cap = new cv.VideoCapture(video); | 66 | let cap = new cv.VideoCapture(video); |
68 | let faces = new cv.RectVector(); | 67 | let faces = new cv.RectVector(); |
69 | let classifier = new cv.CascadeClassifier(); | 68 | let classifier = new cv.CascadeClassifier(); |
... | @@ -105,7 +104,6 @@ function main() | ... | @@ -105,7 +104,6 @@ function main() |
105 | // clean and stop. | 104 | // clean and stop. |
106 | src.delete(); | 105 | src.delete(); |
107 | dst.delete(); | 106 | dst.delete(); |
108 | - gray.delete(); | ||
109 | faces.delete(); | 107 | faces.delete(); |
110 | classifier.delete(); | 108 | classifier.delete(); |
111 | return; | 109 | return; |
... | @@ -115,7 +113,6 @@ function main() | ... | @@ -115,7 +113,6 @@ function main() |
115 | cap.read(src); | 113 | cap.read(src); |
116 | cv.flip(src, src, 1); | 114 | cv.flip(src, src, 1); |
117 | src.copyTo(dst); | 115 | src.copyTo(dst); |
118 | - // cv.cvtColor(dst, gray, cv.COLOR_RGBA2GRAY, 0); | ||
119 | // detect faces. | 116 | // detect faces. |
120 | let msize = new cv.Size(video.width / 4, video.height / 4); | 117 | let msize = new cv.Size(video.width / 4, video.height / 4); |
121 | classifier.detectMultiScale(dst, faces, 1.1, 3, 0, msize); | 118 | classifier.detectMultiScale(dst, faces, 1.1, 3, 0, msize); | ... | ... |
... | @@ -95,7 +95,6 @@ function main() | ... | @@ -95,7 +95,6 @@ function main() |
95 | // clean and stop. | 95 | // clean and stop. |
96 | src.delete(); | 96 | src.delete(); |
97 | dst.delete(); | 97 | dst.delete(); |
98 | - gray.delete(); | ||
99 | faces.delete(); | 98 | faces.delete(); |
100 | classifier.delete(); | 99 | classifier.delete(); |
101 | return; | 100 | return; |
... | @@ -105,7 +104,6 @@ function main() | ... | @@ -105,7 +104,6 @@ function main() |
105 | cap.read(src); | 104 | cap.read(src); |
106 | cv.flip(src, src, 1); | 105 | cv.flip(src, src, 1); |
107 | src.copyTo(dst); | 106 | src.copyTo(dst); |
108 | - // cv.cvtColor(dst, gray, cv.COLOR_RGBA2GRAY, 0); | ||
109 | // detect faces. | 107 | // detect faces. |
110 | let msize = new cv.Size(video.width / 4, video.height / 4); | 108 | let msize = new cv.Size(video.width / 4, video.height / 4); |
111 | classifier.detectMultiScale(dst, faces, 1.1, 3, 0, msize); | 109 | classifier.detectMultiScale(dst, faces, 1.1, 3, 0, msize); |
... | @@ -125,6 +123,7 @@ function main() | ... | @@ -125,6 +123,7 @@ function main() |
125 | // 1초동안 인식되면 사진 촬영 종료하고 등록 버튼 활성화 | 123 | // 1초동안 인식되면 사진 촬영 종료하고 등록 버튼 활성화 |
126 | b64encoded = tempCanvas.toDataURL("image/jpeg", 1.0); | 124 | b64encoded = tempCanvas.toDataURL("image/jpeg", 1.0); |
127 | toggle_streaming(); | 125 | toggle_streaming(); |
126 | + change_notice("촬영 완료! 정보를 등록해주세요"); | ||
128 | activate_sender(); | 127 | activate_sender(); |
129 | } | 128 | } |
130 | } | 129 | } |
... | @@ -150,13 +149,23 @@ function toggle_streaming() | ... | @@ -150,13 +149,23 @@ function toggle_streaming() |
150 | { | 149 | { |
151 | streamButton = document.getElementById("streamButton"); | 150 | streamButton = document.getElementById("streamButton"); |
152 | streaming = !streaming; | 151 | streaming = !streaming; |
153 | - if (streaming) | 152 | + if (streaming){ |
154 | streamButton.value = "촬영중지"; | 153 | streamButton.value = "촬영중지"; |
155 | - else | 154 | + change_notice("1초 후 얼굴을 촬영합니다"); |
155 | + } | ||
156 | + else{ | ||
156 | streamButton.value = "촬영시작"; | 157 | streamButton.value = "촬영시작"; |
158 | + change_notice("촬영이 중지되었습니다"); | ||
159 | + } | ||
157 | main(); | 160 | main(); |
158 | } | 161 | } |
159 | 162 | ||
163 | +function change_notice(text) | ||
164 | +{ | ||
165 | + let notice = document.getElementById("notice"); | ||
166 | + notice.innerHTML = text; | ||
167 | +} | ||
168 | + | ||
160 | function submit() | 169 | function submit() |
161 | { | 170 | { |
162 | let student_id = document.getElementById('student_id').value; | 171 | let student_id = document.getElementById('student_id').value; |
... | @@ -191,7 +200,7 @@ and is wrapped around the whole page content, except for the footer in this exam | ... | @@ -191,7 +200,7 @@ and is wrapped around the whole page content, except for the footer in this exam |
191 | </header> | 200 | </header> |
192 | 201 | ||
193 | <div class="w3-row", style='text-align:center'> | 202 | <div class="w3-row", style='text-align:center'> |
194 | - <h2><b>얼굴을 등록해주세요 (jpeg only)</b></h2> | 203 | + <h2 id="notice"><b>1초 후 얼굴을 촬영합니다</b></h2> |
195 | <div id="container"> | 204 | <div id="container"> |
196 | <video autoplay="true" id="videoInput" style="display: none; object-fit: cover;"></video> | 205 | <video autoplay="true" id="videoInput" style="display: none; object-fit: cover;"></video> |
197 | <canvas id="canvasOutput"></canvas> | 206 | <canvas id="canvasOutput"></canvas> | ... | ... |
-
Please register or login to post a comment