diff --git a/README.md b/README.md index 280504a74fd2d53693eb41ba420ca56ba5f53f0b..d59ae2bf9a8dc4271ae5c926006803ee0ac4eea4 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ <p align="center"> Aplikasi Rekapitulasi Pemilihan Umum <br /> - <a href="https://drive.google.com/file/d/1Z7-iwjspu0tJr2c9R2ZTLW68enhBc1zD/view?usp=drive_link"><strong>Explore the docs »</strong></a> + <a href="https://drive.google.com/file/d/17xJabhFr3tFBLDdku4rONEyfcQLBBodp/view?usp=sharing"><strong>Explore the docs »</strong></a> <br /> </p> </div> @@ -52,16 +52,16 @@ Aplikasi ini dibuat menggunakan bahasa pemrograman Kotlin dan menggunakan OpenCV # How To Use -1. Navigasi ke folder apk -2. Unduh file apk lalu pindahkan ke perangkat android -3. Buka file apk di perangkat android -4. Install aplikasi -5. Buka aplikasi +1. Akses halaman https://bit.ly/OMRekap menggunakan browser. +2. Terdapat 2 folder pada drive tersebut. Anda dapat memilih menggunakan Universal Build dengn size .apk lebih besar atau memilih Slim Build dengan ukuran lebih kecil sesuai dengan arsitektur prosesor Anda. +3. Unduh file .apk yang tersedia di dalam folder tersebut ke perangkat Android. +4. Lakukan instalasi file .apk tersebut pada perangkat Android. -Alternatif lain untuk menjalankan aplikasi: -1. Clone repository https://gitlab.informatika.org/k-02-09/omrekap.git -2. Buka project menggunakan Android Studio -3. Run aplikasi menggunakan emulator atau perangkat android +Sebagai alternatif, langkah-langkah berikut juga dapat dilakukan dalam instalasi aplikasi ini. +1. Akses repository pada [GitLab](https://gitlab.informatika.org/k-02-09/omrekap.git) atau [GitHub](https://github.com/Altair1618/OMRekap) +2. Unduh hasil release terbaru pada repository. +3. Buka proyek tersebut menggunakan Android Studio. +4. Lakukan build dan jalankan aplikasi. # Development ### Clone the repository @@ -89,11 +89,11 @@ git clone https://gitlab.informatika.org/k-02-09/omrekap # Contributors <table> <tr> - <td align="center" valign="top" width="14.28%"><a href="https://avatars.githubusercontent.com/u/91373980?v=4"><img src="https://github.com/Altair1618" width="100px;" alt="Farhan Nabil Suryono"/><br /><sub><b>Farhan Nabil Suryono</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">ðŸ›</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">âš ï¸</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td> - <td align="center" valign="top" width="14.28%"><a href="https://avatars.githubusercontent.com/u/89065724?v=4"><img src="https://github.com/Enliven26" width="100px;" alt="Johanes Lee"/><br /><sub><b>Johanes Lee</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">ðŸ›</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">âš ï¸</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td> - <td align="center" valign="top" width="14.28%"><a href="https://avatars.githubusercontent.com/u/110590843?v=4"><img src="https://github.com/dhanikanovlisa" width="100px;" alt="Dhanika Novlisariyanti"/><br /><sub><b>Dhanika Novlisariyanti</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">ðŸ›</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">âš ï¸</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td> - <td align="center" valign="top" width="14.28%"><a href="https://avatars.githubusercontent.com/u/92362538?v=4"><img src="https://github.com/Genvictus" width="100px;" alt="Johann Christian Kandani"/><br /><sub><b>Johann Christian Kandani</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">ðŸ›</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">âš ï¸</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td> - <td align="center" valign="top" width="14.28%"><a href="https://avatars.githubusercontent.com/u/91373980?v=4"><img src="https://github.com/Michaelu670" width="100px;" alt="Michael Utama"/><br /><sub><b>Michael Utama</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">ðŸ›</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">âš ï¸</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td> + <td align="center" valign="top" width="14.28%"><a href="https://github.com/Altair16181"><img src="https://avatars.githubusercontent.com/u/91373980?v=4" width="100px;" alt="Farhan Nabil Suryono"/><br /><sub><b>Farhan Nabil Suryono</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">ðŸ›</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">âš ï¸</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td> + <td align="center" valign="top" width="14.28%"><a href="https://github.com/Enliven26"><img src="https://avatars.githubusercontent.com/u/89065724?v=4" width="100px;" alt="Johanes Lee"/><br /><sub><b>Johanes Lee</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">ðŸ›</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">âš ï¸</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td> + <td align="center" valign="top" width="14.28%"><a href="https://github.com/dhanikanovlisa"><img src="https://avatars.githubusercontent.com/u/110590843?v=4" width="100px;" alt="Dhanika Novlisariyanti"/><br /><sub><b>Dhanika Novlisariyanti</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">ðŸ›</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">âš ï¸</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td> + <td align="center" valign="top" width="14.28%"><a href="https://github.com/Genvictus"><img src="https://avatars.githubusercontent.com/u/92362538?v=4" width="100px;" alt="Johann Christian Kandani"/><br /><sub><b>Johann Christian Kandani</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">ðŸ›</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">âš ï¸</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td> + <td align="center" valign="top" width="14.28%"><a href="https://github.com/Michaelu670"><img src="https://avatars.githubusercontent.com/u/91373980?v=4" width="100px;" alt="Michael Utama"/><br /><sub><b>Michael Utama</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">ðŸ›</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">âš ï¸</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td> </tbody> </table> diff --git a/app/src/main/java/com/k2_9/omrekap/utils/omr/ContourOMRHelper.kt b/app/src/main/java/com/k2_9/omrekap/utils/omr/ContourOMRHelper.kt index 14274ef3168249eb0a36c422af510448f2369b5c..c74ffb06f4e11f83739750492869f89c9c514ea3 100644 --- a/app/src/main/java/com/k2_9/omrekap/utils/omr/ContourOMRHelper.kt +++ b/app/src/main/java/com/k2_9/omrekap/utils/omr/ContourOMRHelper.kt @@ -246,7 +246,7 @@ class ContourOMRHelper(private val config: ContourOMRHelperConfig) : OMRHelper(c val sortedRects = sortedContours.map { Imgproc.boundingRect(it) } fun getColumnIndex(index: Int): Int { - return floor((sortedRects[index].x.toDouble() / config.omrCropper.config.omrSectionSize.first.toDouble()) * 3.0).toInt() + return floor((max(0.0, sortedRects[index].x.toDouble()) / config.omrCropper.config.omrSectionSize.first.toDouble()) * 3.0).toInt() } for ((idx, rect) in sortedRects.withIndex()) { @@ -280,7 +280,7 @@ class ContourOMRHelper(private val config: ContourOMRHelperConfig) : OMRHelper(c val columnIndex = getColumnIndex(idx) val currentLowestY = getLowestY(idx) - if (fillRecord[columnIndex] || (lowestY != -1 && sortedRects[idx].y > lowestY)) { + if (fillRecord[columnIndex] || (lowestY != -1 && (sortedRects[idx].y + sortedRects[idx].height / 2) > lowestY)) { val nonFilledColumn = (0 until 3).filter { !fillRecord[it] } val filledCount = 3 - nonFilledColumn.size diff --git a/app/src/main/java/com/k2_9/omrekap/utils/omr/OMRHelper.kt b/app/src/main/java/com/k2_9/omrekap/utils/omr/OMRHelper.kt index adbf0748ef303e9fb4a0a2c34cdb2d859d7a8712..5c452d1150ee750dd6ccc413f22bb912c218bd03 100644 --- a/app/src/main/java/com/k2_9/omrekap/utils/omr/OMRHelper.kt +++ b/app/src/main/java/com/k2_9/omrekap/utils/omr/OMRHelper.kt @@ -111,12 +111,14 @@ abstract class OMRHelper(private val config: OMRHelperConfig) { ): List<ContourInfo?> { val mutableContourInfos = contourInfos.toMutableList() val uniqueContourInfos = mutableListOf<ContourInfo?>() + val filledIntensitiesCopy = filledIntensities.toMutableList() // Group by overlapping contour infos and choose the one with the highest intensity for (i in 0 until mutableContourInfos.size - 1) { if (mutableContourInfos[i].isColumnOverlapping(mutableContourInfos[i + 1])) { - if (filledIntensities[i] > filledIntensities[i + 1]) { + if (filledIntensitiesCopy[i] > filledIntensitiesCopy[i + 1]) { mutableContourInfos[i + 1] = mutableContourInfos[i] + filledIntensitiesCopy[i + 1] = filledIntensitiesCopy[i] } continue } else {