Commit Graph

296 Commits

Author SHA1 Message Date
Pierre-Yves Nicolas
7321e271b8 Colors, style adjustments 2025-07-03 08:59:58 +02:00
Pierre-Yves Nicolas
ca2972f0df Camera screen: modify layout 2025-07-02 18:06:25 +02:00
Pierre-Yves Nicolas
cbcd9be42b Page list: add page numbers 2025-07-02 10:25:23 +02:00
Pierre-Yves Nicolas
c67cd78e50 Overlay strokeWidth: 5 -> 10 2025-07-02 09:03:39 +02:00
Pierre-Yves Nicolas
9c9963845e New debug mode for extended live analysis overlay 2025-07-02 08:52:59 +02:00
Pierre-Yves Nicolas
1463ef9355 Refactoring: store showDetectionError in CameraUiState 2025-07-02 06:16:48 +02:00
Pierre-Yves Nicolas
5a98f9f5e6 Refactoring: move "norm" to Geometry.kt and add test 2025-07-01 21:28:10 +02:00
Pierre-Yves Nicolas
5e0cf451ea Avoid detecting very small quadrilaterals 2025-07-01 21:24:10 +02:00
Pierre-Yves Nicolas
6ccf7081b9 Display a message when no document is detected in captured image 2025-07-01 17:15:11 +02:00
pynicolas
2dd5f8cd20 Upgrade libraries (#11) 2025-07-01 17:10:12 +02:00
Pierre-Yves Nicolas
850bc84b2b Use version 0.4 of the segmentation model 2025-06-29 18:13:36 +02:00
Pierre-Yves Nicolas
6361e1616f Shutter effect on capture 2025-06-27 08:13:06 +02:00
Pierre-Yves Nicolas
d51f407f07 Small refactoring of the animation code 2025-06-27 07:57:17 +02:00
Pierre-Yves Nicolas
3ca8854f45 Fix the destination point of the animation 2025-06-26 21:56:29 +02:00
Pierre-Yves Nicolas
d28ade8518 Avoid calling Bitmap.asImageBitmap() too often 2025-06-26 08:07:12 +02:00
Pierre-Yves Nicolas
b9cb072be8 Capture: fix truncated display of narrow documents 2025-06-26 07:30:53 +02:00
Pierre-Yves Nicolas
3f582e12c0 Fix destination of animation for the first element 2025-06-25 22:14:33 +02:00
Pierre-Yves Nicolas
5cfe6244d3 Use Modifier.graphicsLayer for the animation 2025-06-25 21:22:57 +02:00
Pierre-Yves Nicolas
802bf20f08 Resize the captured image before displaying it 2025-06-25 20:58:18 +02:00
Pierre-Yves Nicolas
d025384f39 Remove useless code 2025-06-25 18:49:59 +02:00
Pierre-Yves Nicolas
483165450b Animation: compute the real destination coordinates 2025-06-25 15:58:49 +02:00
Pierre-Yves Nicolas
d13fc4199d CameraScreen: animate captured image 2025-06-25 11:33:46 +02:00
Pierre-Yves Nicolas
5ba634070f CameraScreen: use a BottomAppBar 2025-06-24 20:39:04 +02:00
Pierre-Yves Nicolas
46e84da804 Refactoring: move Scaffold into CameraScreen 2025-06-24 15:10:51 +02:00
Pierre-Yves Nicolas
1159b77c6e Refactoring: introduce CommonPageList 2025-06-24 14:30:10 +02:00
Pierre-Yves Nicolas
2452e1d556 CameraScreen: scroll automatically to newly added page 2025-06-24 13:05:46 +02:00
Pierre-Yves Nicolas
c49a271c39 Refactoring: introduce CameraUiState 2025-06-24 12:49:20 +02:00
Pierre-Yves Nicolas
dcb48b8cc8 CameraScreen: click on a page to open it in DocumentScreen 2025-06-24 12:24:17 +02:00
Pierre-Yves Nicolas
ef2a49cf76 CameraScreen: LazyRow with list of pages 2025-06-24 10:37:38 +02:00
Pierre-Yves Nicolas
e894c14260 New UX on capture: freeze preview, no more dialog 2025-06-23 20:59:18 +02:00
Pierre-Yves Nicolas
f0b6dd400b Rename Camera.kt to CameraScreen.kt 2025-06-23 13:42:36 +02:00
Pierre-Yves Nicolas
765d8503b5 Refactoring: move camerax code to a new file 2025-06-23 13:37:41 +02:00
Pierre-Yves Nicolas
b8a8e6f2f3 Segmentation model v0.3: DeepLabV3plus/MobileNetV2
Inference time decreased from 400 to 200ms
2025-06-23 08:12:26 +02:00
Pierre-Yves Nicolas
87a8d39669 End capture process correctly in case of error 2025-06-22 12:08:57 +02:00
Pierre-Yves Nicolas
f550683786 Close captured ImageProxy (otherwise: subsequent captures freeze) 2025-06-22 12:07:58 +02:00
Pierre-Yves Nicolas
ff0c3c02e6 DocumentScreen: Button to start a new document 2025-06-21 18:39:09 +02:00
Pierre-Yves Nicolas
8ed04238fb Avoid a possible crash when deleting an image 2025-06-21 17:34:31 +02:00
Pierre-Yves Nicolas
60d5bc51ef DocumentScreen: make the image zoomable 2025-06-21 15:39:33 +02:00
Pierre-Yves Nicolas
5b777e5edc Width/height for the document: use avg rather than max 2025-06-21 14:45:30 +02:00
Pierre-Yves Nicolas
cf1dc97b7e Pause live analysis when displaying a capture 2025-06-21 13:15:53 +02:00
pynicolas
0ea4132d37 Make gradle download the TFLite segmentation model (#8) 2025-06-21 13:01:05 +02:00
Pierre-Yves Nicolas
7056393f56 Save about 400ms at capture by delegating the rotation to OpenCV 2025-06-19 19:24:01 +02:00
Pierre-Yves Nicolas
453a8b3fb0 Use a lock to ensure only one segmentation is run at a time 2025-06-19 19:22:22 +02:00
Pierre-Yves Nicolas
0c5a219783 New segmentation model 2025-06-19 15:34:43 +02:00
Pierre-Yves Nicolas
e3ada11c8c Basic postprocessing with OpenCV 2025-06-14 14:39:55 +02:00
Pierre-Yves Nicolas
5f4293d745 Delete useless test 2025-06-11 21:18:35 +02:00
Pierre-Yves Nicolas
93f4c3cb17 Set up an instrumented test that runs segmentation on 3 images 2025-06-10 14:19:50 +02:00
Pierre-Yves Nicolas
ea0e40d13e DocumentScreenPreview: use the app theme 2025-06-09 17:49:40 +02:00
Pierre-Yves Nicolas
d9a03c7131 CameraScreen: set up a Preview to make it easier to work on the layout 2025-06-09 14:43:00 +02:00
Pierre-Yves Nicolas
271f047c9d CameraScreen: better capture button 2025-06-08 20:14:01 +02:00