[{"data":1,"prerenderedAt":3110},["ShallowReactive",2],{"navigation_docs_id":3,"-id-how-to-use-rust":173,"-id-how-to-use-rust-surround":3105},[4,30,109,153],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fid\u002Fgetting-started","id\u002F01.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Pengenalan","\u002Fid\u002Fgetting-started\u002Fintroduction","id\u002F01.getting-started\u002F1.introduction","i-ph-rocket",{"title":15,"path":16,"stem":17,"icon":18},"Instalasi","\u002Fid\u002Fgetting-started\u002Finstallation","id\u002F01.getting-started\u002F2.installation","i-ph-download",{"title":20,"path":21,"stem":22,"icon":23},"Panduan Cepat","\u002Fid\u002Fgetting-started\u002Fquick-start","id\u002F01.getting-started\u002F3.quick-start","i-ph-play",{"title":25,"path":26,"stem":27,"icon":28},"Demo Langsung","\u002Fid\u002Fgetting-started\u002Flive-demo","id\u002F01.getting-started\u002F4.live-demo","i-ph-sparkle",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"How To","\u002Fid\u002Fhow-to","id\u002F02.how-to",[35,40,45,50,55,60,65,70,75,79,84,89,94,99,104],{"title":36,"path":37,"stem":38,"icon":39},"Menggunakan Rust","\u002Fid\u002Fhow-to\u002Fuse-rust","id\u002F02.how-to\u002F00.use-rust","simple-icons-rust",{"title":41,"path":42,"stem":43,"icon":44},"Menggunakan .NET \u002F C#","\u002Fid\u002Fhow-to\u002Fuse-csharp","id\u002F02.how-to\u002F01.use-csharp","simple-icons-dotnet",{"title":46,"path":47,"stem":48,"icon":49},"Menggunakan React Native","\u002Fid\u002Fhow-to\u002Fuse-react-native","id\u002F02.how-to\u002F02.use-react-native","simple-icons-react",{"title":51,"path":52,"stem":53,"icon":54},"Menggunakan iOS (Swift)","\u002Fid\u002Fhow-to\u002Fuse-ios-swift","id\u002F02.how-to\u002F03.use-ios-swift","simple-icons-apple",{"title":56,"path":57,"stem":58,"icon":59},"Menggunakan Android (Kotlin)","\u002Fid\u002Fhow-to\u002Fuse-android-kotlin","id\u002F02.how-to\u002F04.use-android-kotlin","simple-icons-android",{"title":61,"path":62,"stem":63,"icon":64},"Menggunakan C FFI","\u002Fid\u002Fhow-to\u002Fuse-c-ffi","id\u002F02.how-to\u002F05.use-c-ffi","simple-icons-c",{"title":66,"path":67,"stem":68,"icon":69},"Menggunakan CLI","\u002Fid\u002Fhow-to\u002Fuse-cli","id\u002F02.how-to\u002F06.use-cli","simple-icons-gnubash",{"title":71,"path":72,"stem":73,"icon":74},"Menggunakan Web","\u002Fid\u002Fhow-to\u002Fuse-web","id\u002F02.how-to\u002F07.use-web","simple-icons-javascript",{"title":76,"path":77,"stem":78,"icon":49},"Menggunakan React","\u002Fid\u002Fhow-to\u002Fuse-react","id\u002F02.how-to\u002F08.use-react",{"title":80,"path":81,"stem":82,"icon":83},"Menggunakan Node.js","\u002Fid\u002Fhow-to\u002Fuse-node","id\u002F02.how-to\u002F09.use-node","simple-icons-nodedotjs",{"title":85,"path":86,"stem":87,"icon":88},"Menggunakan Python","\u002Fid\u002Fhow-to\u002Fuse-python","id\u002F02.how-to\u002F10.use-python","simple-icons-python",{"title":90,"path":91,"stem":92,"icon":93},"Menggunakan Golang","\u002Fid\u002Fhow-to\u002Fuse-golang","id\u002F02.how-to\u002F11.use-golang","simple-icons-go",{"title":95,"path":96,"stem":97,"icon":98},"Menggunakan Java & JVM","\u002Fid\u002Fhow-to\u002Fuse-java","id\u002F02.how-to\u002F12.use-java","simple-icons-openjdk",{"title":100,"path":101,"stem":102,"icon":103},"Menggunakan Flutter & Dart","\u002Fid\u002Fhow-to\u002Fuse-flutter","id\u002F02.how-to\u002F13.use-flutter","simple-icons-flutter",{"title":105,"path":106,"stem":107,"icon":108},"Menggunakan Input RGB Terdekode","\u002Fid\u002Fhow-to\u002Fuse-decoded-rgb","id\u002F02.how-to\u002F14.use-decoded-rgb","lucide-image",{"title":110,"path":111,"stem":112,"children":113,"page":29},"Advance Guide","\u002Fid\u002Fadvance-guide","id\u002F03.advance-guide",[114,119,124,129,134,139,144,149],{"title":115,"path":116,"stem":117,"icon":118},"Model & Tingkatan (Tiers)","\u002Fid\u002Fadvance-guide\u002Fmodels-and-tiers","id\u002F03.advance-guide\u002F01.models-and-tiers","i-ph-cube",{"title":120,"path":121,"stem":122,"icon":123},"OCR Multibahasa","\u002Fid\u002Fadvance-guide\u002Fmultilingual-ocr","id\u002F03.advance-guide\u002F02.multilingual-ocr","i-ph-translate",{"title":125,"path":126,"stem":127,"icon":128},"Rekonstruksi Tata Letak Spasial","\u002Fid\u002Fadvance-guide\u002Fspatial-layout-reconstruction","id\u002F03.advance-guide\u002F03.spatial-layout-reconstruction","i-ph-layout",{"title":130,"path":131,"stem":132,"icon":133},"Pra-pemrosesan & Tuning Gambar","\u002Fid\u002Fadvance-guide\u002Fimage-preprocessing-and-tuning","id\u002F03.advance-guide\u002F04.image-preprocessing-and-tuning","i-ph-sliders",{"title":135,"path":136,"stem":137,"icon":138},"Klasifikasi & Orientasi","\u002Fid\u002Fadvance-guide\u002Fclassification-and-orientation","id\u002F03.advance-guide\u002F05.classification-and-orientation","i-ph-arrows-clockwise",{"title":140,"path":141,"stem":142,"icon":143},"Performa & Tolok Ukur (Benchmarks)","\u002Fid\u002Fadvance-guide\u002Fperformance-and-benchmarks","id\u002F03.advance-guide\u002F06.performance-and-benchmarks","i-ph-chart-line-up",{"title":145,"path":146,"stem":147,"icon":148},"Pemecahan Masalah (Troubleshooting)","\u002Fid\u002Fadvance-guide\u002Ftroubleshooting","id\u002F03.advance-guide\u002F07.troubleshooting","i-ph-wrench",{"title":150,"path":151,"stem":152,"icon":138},"v0.2 ke v0.3","\u002Fid\u002Fadvance-guide\u002Fmigration-guide","id\u002F03.advance-guide\u002F08.migration-guide",{"title":154,"path":155,"stem":156,"children":157,"page":29},"Api Reference","\u002Fid\u002Fapi-reference","id\u002F04.api-reference",[158,163,168],{"title":159,"path":160,"stem":161,"icon":162},"InitializeConfig","\u002Fid\u002Fapi-reference\u002Finitialize-config","id\u002F04.api-reference\u002F01.initialize-config","i-ph-code-block",{"title":164,"path":165,"stem":166,"icon":167},"OcrRunOptions","\u002Fid\u002Fapi-reference\u002Focr-run-options","id\u002F04.api-reference\u002F02.ocr-run-options","i-ph-faders",{"title":169,"path":170,"stem":171,"icon":172},"TextResult & Mode Keluaran","\u002Fid\u002Fapi-reference\u002Ftext-result-and-output","id\u002F04.api-reference\u002F03.text-result-and-output","i-ph-textbox",{"id":174,"title":36,"body":175,"description":3097,"extension":3098,"links":3099,"meta":3100,"navigation":3101,"path":37,"seo":3102,"stem":38,"__hash__":3104},"docs_id\u002Fid\u002F02.how-to\u002F00.use-rust.md",{"type":176,"value":177,"toc":3081},"minimark",[178,192,196,206,252,255,262,265,550,555,558,694,698,713,992,994,1000,1006,1444,1446,1450,1456,1619,1621,1625,1629,2007,2012,2388,2390,2394,2397,2610,2613,2620,2622,2626,2633,3077],[179,180,181,182,186,187,191],"p",{},"Crate ",[183,184,185],"code",{},"rusto-rs"," adalah mesin inti Rust murni yang mentenagai seluruh binding platform RustO!. Crate ini menyediakan abstraksi tanpa biaya (",[188,189,190],"em",{},"zero-cost","), jaminan keamanan memori, serta pra-pemrosesan gambar terakselerasi SIMD.",[193,194,15],"h2",{"id":195},"instalasi",[179,197,198,199,201,202,205],{},"Tambahkan ",[183,200,185],{}," ke dalam ",[183,203,204],{},"Cargo.toml",":",[207,208,213],"pre",{"className":209,"code":210,"language":211,"meta":212,"style":212},"language-toml shiki shiki-themes material-theme-lighter github-light github-dark monokai","[dependencies]\nrusto-rs = \"0.3.2\"\n","toml","",[183,214,215,231],{"__ignoreMap":212},[216,217,220,224,228],"span",{"class":218,"line":219},"line",1,[216,221,223],{"class":222},"swvn1","[",[216,225,227],{"class":226},"sQqfL","dependencies",[216,229,230],{"class":222},"]\n",[216,232,234,238,241,245,249],{"class":218,"line":233},2,[216,235,237],{"class":236},"ss--_","rusto-rs ",[216,239,240],{"class":222},"=",[216,242,244],{"class":243},"siCPE"," \"",[216,246,248],{"class":247},"sLACW","0.3.2",[216,250,251],{"class":243},"\"\n",[253,254],"hr",{},[193,256,258,259,261],{"id":257},"_1-inisialisasi-mesin-initializeconfig","1. Inisialisasi Mesin (",[183,260,159],{},")",[179,263,264],{},"Inisialisasi mesin OCR satu kali per siklus aplikasi atau thread worker. RustO! menyediakan konfigurasi preset yang sesuai dengan generasi model PaddleOCR:",[207,266,270],{"className":267,"code":268,"language":269,"meta":212,"style":212},"language-rust shiki shiki-themes material-theme-lighter github-light github-dark monokai","use rusto::{InitializeConfig, RustO};\n\n\u002F\u002F Inisialisasi dengan preset standar PP-OCRv6\nlet config = InitializeConfig::ppv6(\"models\u002Fdet.rten\", \"models\u002Frec.rten\", \"models\u002Fdict.txt\")\n    .with_det_thresh(0.3)\n    .with_det_box_thresh(0.6)\n    .with_limit_side_len(736)\n    .with_limit_type(\"min\")\n    .with_unclip_ratio(2.0)\n    .with_use_dilation(true)\n    .with_text_score(0.5)\n    .with_rec_batch_num(6);\n\nlet mut ocr = RustO::initialize(config)?;\n","rust",[183,271,272,300,306,313,366,390,409,424,443,462,477,496,511,516],{"__ignoreMap":212},[216,273,274,278,282,286,289,291,294,297],{"class":218,"line":219},[216,275,277],{"class":276},"shWJe","use",[216,279,281],{"class":280},"sKvfc"," rusto",[216,283,285],{"class":284},"sGXK2","::",[216,287,288],{"class":222},"{",[216,290,159],{"class":280},[216,292,293],{"class":222},",",[216,295,296],{"class":280}," RustO",[216,298,299],{"class":222},"};\n",[216,301,302],{"class":218,"line":233},[216,303,305],{"emptyLinePlaceholder":304},true,"\n",[216,307,309],{"class":218,"line":308},3,[216,310,312],{"class":311},"ss7Ak","\u002F\u002F Inisialisasi dengan preset standar PP-OCRv6\n",[216,314,316,320,323,325,328,330,334,337,340,343,345,347,349,352,354,356,358,361,363],{"class":218,"line":315},4,[216,317,319],{"class":318},"srJo8","let",[216,321,322],{"class":236}," config ",[216,324,240],{"class":284},[216,326,327],{"class":280}," InitializeConfig",[216,329,285],{"class":284},[216,331,333],{"class":332},"sD0ED","ppv6",[216,335,336],{"class":222},"(",[216,338,339],{"class":243},"\"",[216,341,342],{"class":247},"models\u002Fdet.rten",[216,344,339],{"class":243},[216,346,293],{"class":222},[216,348,244],{"class":243},[216,350,351],{"class":247},"models\u002Frec.rten",[216,353,339],{"class":243},[216,355,293],{"class":222},[216,357,244],{"class":243},[216,359,360],{"class":247},"models\u002Fdict.txt",[216,362,339],{"class":243},[216,364,365],{"class":222},")\n",[216,367,369,372,375,377,381,385,388],{"class":218,"line":368},5,[216,370,371],{"class":284},"    .",[216,373,374],{"class":332},"with_det_thresh",[216,376,336],{"class":222},[216,378,380],{"class":379},"sYThS","0",[216,382,384],{"class":383},"sMTiH",".",[216,386,387],{"class":379},"3",[216,389,365],{"class":222},[216,391,393,395,398,400,402,404,407],{"class":218,"line":392},6,[216,394,371],{"class":284},[216,396,397],{"class":332},"with_det_box_thresh",[216,399,336],{"class":222},[216,401,380],{"class":379},[216,403,384],{"class":383},[216,405,406],{"class":379},"6",[216,408,365],{"class":222},[216,410,412,414,417,419,422],{"class":218,"line":411},7,[216,413,371],{"class":284},[216,415,416],{"class":332},"with_limit_side_len",[216,418,336],{"class":222},[216,420,421],{"class":379},"736",[216,423,365],{"class":222},[216,425,427,429,432,434,436,439,441],{"class":218,"line":426},8,[216,428,371],{"class":284},[216,430,431],{"class":332},"with_limit_type",[216,433,336],{"class":222},[216,435,339],{"class":243},[216,437,438],{"class":247},"min",[216,440,339],{"class":243},[216,442,365],{"class":222},[216,444,446,448,451,453,456,458,460],{"class":218,"line":445},9,[216,447,371],{"class":284},[216,449,450],{"class":332},"with_unclip_ratio",[216,452,336],{"class":222},[216,454,455],{"class":379},"2",[216,457,384],{"class":383},[216,459,380],{"class":379},[216,461,365],{"class":222},[216,463,465,467,470,472,475],{"class":218,"line":464},10,[216,466,371],{"class":284},[216,468,469],{"class":332},"with_use_dilation",[216,471,336],{"class":222},[216,473,474],{"class":383},"true",[216,476,365],{"class":222},[216,478,480,482,485,487,489,491,494],{"class":218,"line":479},11,[216,481,371],{"class":284},[216,483,484],{"class":332},"with_text_score",[216,486,336],{"class":222},[216,488,380],{"class":379},[216,490,384],{"class":383},[216,492,493],{"class":379},"5",[216,495,365],{"class":222},[216,497,499,501,504,506,508],{"class":218,"line":498},12,[216,500,371],{"class":284},[216,502,503],{"class":332},"with_rec_batch_num",[216,505,336],{"class":222},[216,507,406],{"class":379},[216,509,510],{"class":222},");\n",[216,512,514],{"class":218,"line":513},13,[216,515,305],{"emptyLinePlaceholder":304},[216,517,519,521,525,528,530,532,534,537,539,542,544,547],{"class":218,"line":518},14,[216,520,319],{"class":318},[216,522,524],{"class":523},"sTNss"," mut",[216,526,527],{"class":236}," ocr ",[216,529,240],{"class":284},[216,531,296],{"class":280},[216,533,285],{"class":284},[216,535,536],{"class":332},"initialize",[216,538,336],{"class":222},[216,540,541],{"class":236},"config",[216,543,261],{"class":222},[216,545,546],{"class":284},"?",[216,548,549],{"class":222},";\n",[551,552,554],"h3",{"id":553},"model-tambahan-klasifikasi-orientasi-cls","Model Tambahan (Klasifikasi Orientasi & CLS)",[179,556,557],{},"Untuk dokumen hasil pemindaian yang miring atau teks terbalik, sertakan model klasifikasi orientasi:",[207,559,561],{"className":267,"code":560,"language":269,"meta":212,"style":212},"\u002F\u002F PP-OCRv5 dengan pengklasifikasi baris terbalik 180° (CLS) dan rotasi halaman penuh\nlet config = InitializeConfig::ppv5(\"models\u002Fdet.rten\", \"models\u002Frec.rten\", \"models\u002Fdict.txt\")\n    .with_cls_threshold(\"models\u002Fcls.rten\", 0.9)\n    .with_orientation_threshold(\"models\u002Forient.rten\", 0.85);\n\nlet mut ocr = RustO::initialize(config)?;\n",[183,562,563,568,609,637,664,668],{"__ignoreMap":212},[216,564,565],{"class":218,"line":219},[216,566,567],{"class":311},"\u002F\u002F PP-OCRv5 dengan pengklasifikasi baris terbalik 180° (CLS) dan rotasi halaman penuh\n",[216,569,570,572,574,576,578,580,583,585,587,589,591,593,595,597,599,601,603,605,607],{"class":218,"line":233},[216,571,319],{"class":318},[216,573,322],{"class":236},[216,575,240],{"class":284},[216,577,327],{"class":280},[216,579,285],{"class":284},[216,581,582],{"class":332},"ppv5",[216,584,336],{"class":222},[216,586,339],{"class":243},[216,588,342],{"class":247},[216,590,339],{"class":243},[216,592,293],{"class":222},[216,594,244],{"class":243},[216,596,351],{"class":247},[216,598,339],{"class":243},[216,600,293],{"class":222},[216,602,244],{"class":243},[216,604,360],{"class":247},[216,606,339],{"class":243},[216,608,365],{"class":222},[216,610,611,613,616,618,620,623,625,627,630,632,635],{"class":218,"line":308},[216,612,371],{"class":284},[216,614,615],{"class":332},"with_cls_threshold",[216,617,336],{"class":222},[216,619,339],{"class":243},[216,621,622],{"class":247},"models\u002Fcls.rten",[216,624,339],{"class":243},[216,626,293],{"class":222},[216,628,629],{"class":379}," 0",[216,631,384],{"class":383},[216,633,634],{"class":379},"9",[216,636,365],{"class":222},[216,638,639,641,644,646,648,651,653,655,657,659,662],{"class":218,"line":315},[216,640,371],{"class":284},[216,642,643],{"class":332},"with_orientation_threshold",[216,645,336],{"class":222},[216,647,339],{"class":243},[216,649,650],{"class":247},"models\u002Forient.rten",[216,652,339],{"class":243},[216,654,293],{"class":222},[216,656,629],{"class":379},[216,658,384],{"class":383},[216,660,661],{"class":379},"85",[216,663,510],{"class":222},[216,665,666],{"class":218,"line":368},[216,667,305],{"emptyLinePlaceholder":304},[216,669,670,672,674,676,678,680,682,684,686,688,690,692],{"class":218,"line":392},[216,671,319],{"class":318},[216,673,524],{"class":523},[216,675,527],{"class":236},[216,677,240],{"class":284},[216,679,296],{"class":280},[216,681,285],{"class":284},[216,683,536],{"class":332},[216,685,336],{"class":222},[216,687,541],{"class":236},[216,689,261],{"class":222},[216,691,546],{"class":284},[216,693,549],{"class":222},[551,695,697],{"id":696},"komposisi-mesin-generik-pluggable","Komposisi Mesin Generik & Pluggable",[179,699,700,701,704,705,708,709,712],{},"RustO! menyediakan trait ",[183,702,703],{},"InferenceSession"," dan enum ",[183,706,707],{},"EngineSession"," sehingga Anda dapat mengganti mesin inferensi dengan mudah (misalnya ONNX Runtime ",[183,710,711],{},"ort",", Tract, Candle, atau mesin pengujian tiruan) tanpa menyentuh logika geometri OCR:",[207,714,716],{"className":267,"code":715,"language":269,"meta":212,"style":212},"use rusto::{InferenceSession, EngineError, RustO, InitializeConfig, TextDetector, TextRecognizer};\nuse ndarray::ArrayD;\nuse std::collections::HashMap;\n\n\u002F\u002F Pilihan 1: Berikan sesi inferensi kustom\nlet config = InitializeConfig::ppv6(\"models\u002Fdet.rten\", \"models\u002Frec.rten\", \"models\u002Fdict.txt\");\nlet ocr = RustO::with_custom_engines(config, my_det_session, my_rec_session)?;\n\n\u002F\u002F Pilihan 2: Gabungkan TextDetector dan TextRecognizer yang telah dikonfigurasi sebelumnya\nlet det = TextDetector::new(config.det.clone())?;\nlet rec = TextRecognizer::new(config.rec.clone())?;\nlet ocr = RustO::with_components(config.global, det, rec)?;\n",[183,717,718,755,769,788,792,797,837,872,876,881,918,952],{"__ignoreMap":212},[216,719,720,722,724,726,728,730,732,735,737,739,741,743,745,748,750,753],{"class":218,"line":219},[216,721,277],{"class":276},[216,723,281],{"class":280},[216,725,285],{"class":284},[216,727,288],{"class":222},[216,729,703],{"class":280},[216,731,293],{"class":222},[216,733,734],{"class":280}," EngineError",[216,736,293],{"class":222},[216,738,296],{"class":280},[216,740,293],{"class":222},[216,742,327],{"class":280},[216,744,293],{"class":222},[216,746,747],{"class":280}," TextDetector",[216,749,293],{"class":222},[216,751,752],{"class":280}," TextRecognizer",[216,754,299],{"class":222},[216,756,757,759,762,764,767],{"class":218,"line":233},[216,758,277],{"class":276},[216,760,761],{"class":280}," ndarray",[216,763,285],{"class":284},[216,765,766],{"class":280},"ArrayD",[216,768,549],{"class":222},[216,770,771,773,776,778,781,783,786],{"class":218,"line":308},[216,772,277],{"class":276},[216,774,775],{"class":280}," std",[216,777,285],{"class":284},[216,779,780],{"class":280},"collections",[216,782,285],{"class":284},[216,784,785],{"class":280},"HashMap",[216,787,549],{"class":222},[216,789,790],{"class":218,"line":315},[216,791,305],{"emptyLinePlaceholder":304},[216,793,794],{"class":218,"line":368},[216,795,796],{"class":311},"\u002F\u002F Pilihan 1: Berikan sesi inferensi kustom\n",[216,798,799,801,803,805,807,809,811,813,815,817,819,821,823,825,827,829,831,833,835],{"class":218,"line":392},[216,800,319],{"class":318},[216,802,322],{"class":236},[216,804,240],{"class":284},[216,806,327],{"class":280},[216,808,285],{"class":284},[216,810,333],{"class":332},[216,812,336],{"class":222},[216,814,339],{"class":243},[216,816,342],{"class":247},[216,818,339],{"class":243},[216,820,293],{"class":222},[216,822,244],{"class":243},[216,824,351],{"class":247},[216,826,339],{"class":243},[216,828,293],{"class":222},[216,830,244],{"class":243},[216,832,360],{"class":247},[216,834,339],{"class":243},[216,836,510],{"class":222},[216,838,839,841,843,845,847,849,852,854,856,858,861,863,866,868,870],{"class":218,"line":411},[216,840,319],{"class":318},[216,842,527],{"class":236},[216,844,240],{"class":284},[216,846,296],{"class":280},[216,848,285],{"class":284},[216,850,851],{"class":332},"with_custom_engines",[216,853,336],{"class":222},[216,855,541],{"class":236},[216,857,293],{"class":222},[216,859,860],{"class":236}," my_det_session",[216,862,293],{"class":222},[216,864,865],{"class":236}," my_rec_session",[216,867,261],{"class":222},[216,869,546],{"class":284},[216,871,549],{"class":222},[216,873,874],{"class":218,"line":426},[216,875,305],{"emptyLinePlaceholder":304},[216,877,878],{"class":218,"line":445},[216,879,880],{"class":311},"\u002F\u002F Pilihan 2: Gabungkan TextDetector dan TextRecognizer yang telah dikonfigurasi sebelumnya\n",[216,882,883,885,888,890,892,894,897,899,901,903,906,908,911,914,916],{"class":218,"line":464},[216,884,319],{"class":318},[216,886,887],{"class":236}," det ",[216,889,240],{"class":284},[216,891,747],{"class":280},[216,893,285],{"class":284},[216,895,896],{"class":332},"new",[216,898,336],{"class":222},[216,900,541],{"class":236},[216,902,384],{"class":284},[216,904,905],{"class":236},"det",[216,907,384],{"class":284},[216,909,910],{"class":332},"clone",[216,912,913],{"class":222},"())",[216,915,546],{"class":284},[216,917,549],{"class":222},[216,919,920,922,925,927,929,931,933,935,937,939,942,944,946,948,950],{"class":218,"line":479},[216,921,319],{"class":318},[216,923,924],{"class":236}," rec ",[216,926,240],{"class":284},[216,928,752],{"class":280},[216,930,285],{"class":284},[216,932,896],{"class":332},[216,934,336],{"class":222},[216,936,541],{"class":236},[216,938,384],{"class":284},[216,940,941],{"class":236},"rec",[216,943,384],{"class":284},[216,945,910],{"class":332},[216,947,913],{"class":222},[216,949,546],{"class":284},[216,951,549],{"class":222},[216,953,954,956,958,960,962,964,967,969,971,973,976,978,981,983,986,988,990],{"class":218,"line":498},[216,955,319],{"class":318},[216,957,527],{"class":236},[216,959,240],{"class":284},[216,961,296],{"class":280},[216,963,285],{"class":284},[216,965,966],{"class":332},"with_components",[216,968,336],{"class":222},[216,970,541],{"class":236},[216,972,384],{"class":284},[216,974,975],{"class":236},"global",[216,977,293],{"class":222},[216,979,980],{"class":236}," det",[216,982,293],{"class":222},[216,984,985],{"class":236}," rec",[216,987,261],{"class":222},[216,989,546],{"class":284},[216,991,549],{"class":222},[253,993],{},[193,995,997,998,261],{"id":996},"_2-opsi-permintaan-lokal-ocrrunoptions","2. Opsi Permintaan Lokal (",[183,999,164],{},[179,1001,1002,1003,1005],{},"Batas ukuran gambar, penskalaan detektor, dilatasi morfologi, rasio unclip, dan mode keluaran dapat dikonfigurasi per panggilan deteksi melalui ",[183,1004,164],{}," tanpa mengubah sesi model yang telah diinisialisasi:",[207,1007,1009],{"className":267,"code":1008,"language":269,"meta":212,"style":212},"use rusto::{\n    DetectionRunOptions, ImageSource, OcrRunOptions, OutputGranularity,\n    PostprocessRunOptions,\n};\n\nlet options = OcrRunOptions {\n    output: OutputGranularity::Lines, \u002F\u002F OutputGranularity::Words atau OutputGranularity::Spatial\n    line_y_threshold: Some(0.5),      \u002F\u002F Toleransi dinamis pengelompokan baris\n    word_x_threshold: Some(0.4),      \u002F\u002F Toleransi pemisahan kata\u002Fkolom\n    text_score: Some(0.55),           \u002F\u002F Batas skor kepercayaan pengenalan teks\n    classification: Some(true),       \u002F\u002F Evaluasi CLS jika model tersedia\n    max_side_len: Some(1600.0),       \u002F\u002F Batas panjang sisi maksimum gambar\n    min_height: Some(32.0),           \u002F\u002F Tinggi minimum kotak teks\n    detection: Some(DetectionRunOptions {\n        limit_side_len: Some(960),\n        limit_type: Some(\"max\".into()),\n        ..Default::default()\n    }),\n    postprocess: Some(PostprocessRunOptions {\n        use_dilation: Some(true),     \u002F\u002F Dilatasi morfologi untuk struk redup\u002Fpudar\n        unclip_ratio: Some(2.0),\n        threshold: Some(0.3),\n        box_threshold: Some(0.6),\n        ..Default::default()\n    }),\n    ..Default::default()\n};\n",[183,1010,1011,1022,1045,1052,1056,1060,1074,1093,1117,1140,1163,1181,1204,1227,1243,1261,1288,1305,1311,1328,1347,1367,1387,1407,1420,1425,1439],{"__ignoreMap":212},[216,1012,1013,1015,1017,1019],{"class":218,"line":219},[216,1014,277],{"class":276},[216,1016,281],{"class":280},[216,1018,285],{"class":284},[216,1020,1021],{"class":222},"{\n",[216,1023,1024,1027,1029,1032,1034,1037,1039,1042],{"class":218,"line":233},[216,1025,1026],{"class":280},"    DetectionRunOptions",[216,1028,293],{"class":222},[216,1030,1031],{"class":280}," ImageSource",[216,1033,293],{"class":222},[216,1035,1036],{"class":280}," OcrRunOptions",[216,1038,293],{"class":222},[216,1040,1041],{"class":280}," OutputGranularity",[216,1043,1044],{"class":222},",\n",[216,1046,1047,1050],{"class":218,"line":308},[216,1048,1049],{"class":280},"    PostprocessRunOptions",[216,1051,1044],{"class":222},[216,1053,1054],{"class":218,"line":315},[216,1055,299],{"class":222},[216,1057,1058],{"class":218,"line":368},[216,1059,305],{"emptyLinePlaceholder":304},[216,1061,1062,1064,1067,1069,1071],{"class":218,"line":392},[216,1063,319],{"class":318},[216,1065,1066],{"class":236}," options ",[216,1068,240],{"class":284},[216,1070,1036],{"class":280},[216,1072,1073],{"class":222}," {\n",[216,1075,1076,1079,1081,1083,1085,1088,1090],{"class":218,"line":411},[216,1077,1078],{"class":236},"    output",[216,1080,205],{"class":284},[216,1082,1041],{"class":280},[216,1084,285],{"class":284},[216,1086,1087],{"class":280},"Lines",[216,1089,293],{"class":222},[216,1091,1092],{"class":311}," \u002F\u002F OutputGranularity::Words atau OutputGranularity::Spatial\n",[216,1094,1095,1098,1100,1103,1105,1107,1109,1111,1114],{"class":218,"line":426},[216,1096,1097],{"class":236},"    line_y_threshold",[216,1099,205],{"class":284},[216,1101,1102],{"class":280}," Some",[216,1104,336],{"class":222},[216,1106,380],{"class":379},[216,1108,384],{"class":383},[216,1110,493],{"class":379},[216,1112,1113],{"class":222},"),",[216,1115,1116],{"class":311},"      \u002F\u002F Toleransi dinamis pengelompokan baris\n",[216,1118,1119,1122,1124,1126,1128,1130,1132,1135,1137],{"class":218,"line":445},[216,1120,1121],{"class":236},"    word_x_threshold",[216,1123,205],{"class":284},[216,1125,1102],{"class":280},[216,1127,336],{"class":222},[216,1129,380],{"class":379},[216,1131,384],{"class":383},[216,1133,1134],{"class":379},"4",[216,1136,1113],{"class":222},[216,1138,1139],{"class":311},"      \u002F\u002F Toleransi pemisahan kata\u002Fkolom\n",[216,1141,1142,1145,1147,1149,1151,1153,1155,1158,1160],{"class":218,"line":464},[216,1143,1144],{"class":236},"    text_score",[216,1146,205],{"class":284},[216,1148,1102],{"class":280},[216,1150,336],{"class":222},[216,1152,380],{"class":379},[216,1154,384],{"class":383},[216,1156,1157],{"class":379},"55",[216,1159,1113],{"class":222},[216,1161,1162],{"class":311},"           \u002F\u002F Batas skor kepercayaan pengenalan teks\n",[216,1164,1165,1168,1170,1172,1174,1176,1178],{"class":218,"line":479},[216,1166,1167],{"class":236},"    classification",[216,1169,205],{"class":284},[216,1171,1102],{"class":280},[216,1173,336],{"class":222},[216,1175,474],{"class":383},[216,1177,1113],{"class":222},[216,1179,1180],{"class":311},"       \u002F\u002F Evaluasi CLS jika model tersedia\n",[216,1182,1183,1186,1188,1190,1192,1195,1197,1199,1201],{"class":218,"line":498},[216,1184,1185],{"class":236},"    max_side_len",[216,1187,205],{"class":284},[216,1189,1102],{"class":280},[216,1191,336],{"class":222},[216,1193,1194],{"class":379},"1600",[216,1196,384],{"class":383},[216,1198,380],{"class":379},[216,1200,1113],{"class":222},[216,1202,1203],{"class":311},"       \u002F\u002F Batas panjang sisi maksimum gambar\n",[216,1205,1206,1209,1211,1213,1215,1218,1220,1222,1224],{"class":218,"line":513},[216,1207,1208],{"class":236},"    min_height",[216,1210,205],{"class":284},[216,1212,1102],{"class":280},[216,1214,336],{"class":222},[216,1216,1217],{"class":379},"32",[216,1219,384],{"class":383},[216,1221,380],{"class":379},[216,1223,1113],{"class":222},[216,1225,1226],{"class":311},"           \u002F\u002F Tinggi minimum kotak teks\n",[216,1228,1229,1232,1234,1236,1238,1241],{"class":218,"line":518},[216,1230,1231],{"class":236},"    detection",[216,1233,205],{"class":284},[216,1235,1102],{"class":280},[216,1237,336],{"class":222},[216,1239,1240],{"class":280},"DetectionRunOptions",[216,1242,1073],{"class":222},[216,1244,1246,1249,1251,1253,1255,1258],{"class":218,"line":1245},15,[216,1247,1248],{"class":236},"        limit_side_len",[216,1250,205],{"class":284},[216,1252,1102],{"class":280},[216,1254,336],{"class":222},[216,1256,1257],{"class":379},"960",[216,1259,1260],{"class":222},"),\n",[216,1262,1264,1267,1269,1271,1273,1275,1278,1280,1282,1285],{"class":218,"line":1263},16,[216,1265,1266],{"class":236},"        limit_type",[216,1268,205],{"class":284},[216,1270,1102],{"class":280},[216,1272,336],{"class":222},[216,1274,339],{"class":243},[216,1276,1277],{"class":247},"max",[216,1279,339],{"class":243},[216,1281,384],{"class":284},[216,1283,1284],{"class":332},"into",[216,1286,1287],{"class":222},"()),\n",[216,1289,1291,1294,1297,1299,1302],{"class":218,"line":1290},17,[216,1292,1293],{"class":284},"        ..",[216,1295,1296],{"class":280},"Default",[216,1298,285],{"class":284},[216,1300,1301],{"class":332},"default",[216,1303,1304],{"class":222},"()\n",[216,1306,1308],{"class":218,"line":1307},18,[216,1309,1310],{"class":222},"    }),\n",[216,1312,1314,1317,1319,1321,1323,1326],{"class":218,"line":1313},19,[216,1315,1316],{"class":236},"    postprocess",[216,1318,205],{"class":284},[216,1320,1102],{"class":280},[216,1322,336],{"class":222},[216,1324,1325],{"class":280},"PostprocessRunOptions",[216,1327,1073],{"class":222},[216,1329,1331,1334,1336,1338,1340,1342,1344],{"class":218,"line":1330},20,[216,1332,1333],{"class":236},"        use_dilation",[216,1335,205],{"class":284},[216,1337,1102],{"class":280},[216,1339,336],{"class":222},[216,1341,474],{"class":383},[216,1343,1113],{"class":222},[216,1345,1346],{"class":311},"     \u002F\u002F Dilatasi morfologi untuk struk redup\u002Fpudar\n",[216,1348,1350,1353,1355,1357,1359,1361,1363,1365],{"class":218,"line":1349},21,[216,1351,1352],{"class":236},"        unclip_ratio",[216,1354,205],{"class":284},[216,1356,1102],{"class":280},[216,1358,336],{"class":222},[216,1360,455],{"class":379},[216,1362,384],{"class":383},[216,1364,380],{"class":379},[216,1366,1260],{"class":222},[216,1368,1370,1373,1375,1377,1379,1381,1383,1385],{"class":218,"line":1369},22,[216,1371,1372],{"class":236},"        threshold",[216,1374,205],{"class":284},[216,1376,1102],{"class":280},[216,1378,336],{"class":222},[216,1380,380],{"class":379},[216,1382,384],{"class":383},[216,1384,387],{"class":379},[216,1386,1260],{"class":222},[216,1388,1390,1393,1395,1397,1399,1401,1403,1405],{"class":218,"line":1389},23,[216,1391,1392],{"class":236},"        box_threshold",[216,1394,205],{"class":284},[216,1396,1102],{"class":280},[216,1398,336],{"class":222},[216,1400,380],{"class":379},[216,1402,384],{"class":383},[216,1404,406],{"class":379},[216,1406,1260],{"class":222},[216,1408,1410,1412,1414,1416,1418],{"class":218,"line":1409},24,[216,1411,1293],{"class":284},[216,1413,1296],{"class":280},[216,1415,285],{"class":284},[216,1417,1301],{"class":332},[216,1419,1304],{"class":222},[216,1421,1423],{"class":218,"line":1422},25,[216,1424,1310],{"class":222},[216,1426,1428,1431,1433,1435,1437],{"class":218,"line":1427},26,[216,1429,1430],{"class":284},"    ..",[216,1432,1296],{"class":280},[216,1434,285],{"class":284},[216,1436,1301],{"class":332},[216,1438,1304],{"class":222},[216,1440,1442],{"class":218,"line":1441},27,[216,1443,299],{"class":222},[253,1445],{},[193,1447,1449],{"id":1448},"_3-sumber-gambar-yang-didukung","3. Sumber Gambar yang Didukung",[179,1451,1452,1455],{},[183,1453,1454],{},"ImageSource"," menerima path berkas sistem maupun buffer byte dalam memori:",[207,1457,1459],{"className":267,"code":1458,"language":269,"meta":212,"style":212},"use rusto::ImageSource;\nuse std::path::PathBuf;\n\n\u002F\u002F 1. Path berkas filesystem (memuat & mendekode secara efisien)\nlet source_path = ImageSource::Path(PathBuf::from(\"data\u002Finvoice.jpg\"));\n\n\u002F\u002F 2. Buffer byte mentah dalam memori RAM (PNG, JPEG, WebP, BMP)\nlet raw_bytes: Vec\u003Cu8> = std::fs::read(\"data\u002Finvoice.jpg\")?;\nlet source_bytes = ImageSource::Bytes(raw_bytes);\n",[183,1460,1461,1473,1491,1495,1500,1537,1541,1546,1596],{"__ignoreMap":212},[216,1462,1463,1465,1467,1469,1471],{"class":218,"line":219},[216,1464,277],{"class":276},[216,1466,281],{"class":280},[216,1468,285],{"class":284},[216,1470,1454],{"class":280},[216,1472,549],{"class":222},[216,1474,1475,1477,1479,1481,1484,1486,1489],{"class":218,"line":233},[216,1476,277],{"class":276},[216,1478,775],{"class":280},[216,1480,285],{"class":284},[216,1482,1483],{"class":280},"path",[216,1485,285],{"class":284},[216,1487,1488],{"class":280},"PathBuf",[216,1490,549],{"class":222},[216,1492,1493],{"class":218,"line":308},[216,1494,305],{"emptyLinePlaceholder":304},[216,1496,1497],{"class":218,"line":315},[216,1498,1499],{"class":311},"\u002F\u002F 1. Path berkas filesystem (memuat & mendekode secara efisien)\n",[216,1501,1502,1504,1507,1509,1511,1513,1516,1518,1520,1522,1525,1527,1529,1532,1534],{"class":218,"line":368},[216,1503,319],{"class":318},[216,1505,1506],{"class":236}," source_path ",[216,1508,240],{"class":284},[216,1510,1031],{"class":280},[216,1512,285],{"class":284},[216,1514,1515],{"class":332},"Path",[216,1517,336],{"class":222},[216,1519,1488],{"class":280},[216,1521,285],{"class":284},[216,1523,1524],{"class":332},"from",[216,1526,336],{"class":222},[216,1528,339],{"class":243},[216,1530,1531],{"class":247},"data\u002Finvoice.jpg",[216,1533,339],{"class":243},[216,1535,1536],{"class":222},"));\n",[216,1538,1539],{"class":218,"line":392},[216,1540,305],{"emptyLinePlaceholder":304},[216,1542,1543],{"class":218,"line":411},[216,1544,1545],{"class":311},"\u002F\u002F 2. Buffer byte mentah dalam memori RAM (PNG, JPEG, WebP, BMP)\n",[216,1547,1548,1550,1553,1555,1558,1561,1564,1567,1570,1572,1574,1577,1579,1582,1584,1586,1588,1590,1592,1594],{"class":218,"line":426},[216,1549,319],{"class":318},[216,1551,1552],{"class":236}," raw_bytes",[216,1554,205],{"class":284},[216,1556,1557],{"class":280}," Vec",[216,1559,1560],{"class":222},"\u003C",[216,1562,1563],{"class":280},"u8",[216,1565,1566],{"class":222},">",[216,1568,1569],{"class":284}," =",[216,1571,775],{"class":280},[216,1573,285],{"class":284},[216,1575,1576],{"class":280},"fs",[216,1578,285],{"class":284},[216,1580,1581],{"class":332},"read",[216,1583,336],{"class":222},[216,1585,339],{"class":243},[216,1587,1531],{"class":247},[216,1589,339],{"class":243},[216,1591,261],{"class":222},[216,1593,546],{"class":284},[216,1595,549],{"class":222},[216,1597,1598,1600,1603,1605,1607,1609,1612,1614,1617],{"class":218,"line":445},[216,1599,319],{"class":318},[216,1601,1602],{"class":236}," source_bytes ",[216,1604,240],{"class":284},[216,1606,1031],{"class":280},[216,1608,285],{"class":284},[216,1610,1611],{"class":332},"Bytes",[216,1613,336],{"class":222},[216,1615,1616],{"class":236},"raw_bytes",[216,1618,510],{"class":222},[253,1620],{},[193,1622,1624],{"id":1623},"_4-contoh-praktis-penanganan-keluaran","4. Contoh Praktis & Penanganan Keluaran",[551,1626,1628],{"id":1627},"contoh-a-mengekstrak-baris-teks-terstruktur","Contoh A: Mengekstrak Baris Teks Terstruktur",[207,1630,1632],{"className":267,"code":1631,"language":269,"meta":212,"style":212},"use rusto::{DetectTextResult, ImageSource, OcrRunOptions, OutputGranularity, RustO};\n\nlet mut options = OcrRunOptions::default();\noptions.output = OutputGranularity::Lines;\n\nlet result = ocr.detect_text(&ImageSource::Path(\"invoice.png\".into()), &options)?;\n\nif let DetectTextResult::Structured(items) = result {\n    for item in items {\n        println!(\"Teks: {}\", item.text);\n        println!(\"Skor: {:.3}\", item.score);\n        println!(\"Titik Poligon [TL, TR, BR, BL]: {:?}\", item.box_points);\n        println!(\n            \"Frame Kotak Batas: Kiri={}, Atas={}, Lebar={}, Tinggi={}\",\n            item.frame.left, item.frame.top, item.frame.width, item.frame.height\n        );\n    }\n}\n",[183,1633,1634,1665,1669,1688,1708,1712,1767,1771,1801,1817,1844,1874,1903,1910,1938,1992,1997,2002],{"__ignoreMap":212},[216,1635,1636,1638,1640,1642,1644,1647,1649,1651,1653,1655,1657,1659,1661,1663],{"class":218,"line":219},[216,1637,277],{"class":276},[216,1639,281],{"class":280},[216,1641,285],{"class":284},[216,1643,288],{"class":222},[216,1645,1646],{"class":280},"DetectTextResult",[216,1648,293],{"class":222},[216,1650,1031],{"class":280},[216,1652,293],{"class":222},[216,1654,1036],{"class":280},[216,1656,293],{"class":222},[216,1658,1041],{"class":280},[216,1660,293],{"class":222},[216,1662,296],{"class":280},[216,1664,299],{"class":222},[216,1666,1667],{"class":218,"line":233},[216,1668,305],{"emptyLinePlaceholder":304},[216,1670,1671,1673,1675,1677,1679,1681,1683,1685],{"class":218,"line":308},[216,1672,319],{"class":318},[216,1674,524],{"class":523},[216,1676,1066],{"class":236},[216,1678,240],{"class":284},[216,1680,1036],{"class":280},[216,1682,285],{"class":284},[216,1684,1301],{"class":332},[216,1686,1687],{"class":222},"();\n",[216,1689,1690,1693,1695,1698,1700,1702,1704,1706],{"class":218,"line":315},[216,1691,1692],{"class":236},"options",[216,1694,384],{"class":284},[216,1696,1697],{"class":236},"output ",[216,1699,240],{"class":284},[216,1701,1041],{"class":280},[216,1703,285],{"class":284},[216,1705,1087],{"class":280},[216,1707,549],{"class":222},[216,1709,1710],{"class":218,"line":368},[216,1711,305],{"emptyLinePlaceholder":304},[216,1713,1714,1716,1719,1721,1724,1726,1729,1731,1734,1736,1738,1740,1742,1744,1747,1749,1751,1753,1756,1759,1761,1763,1765],{"class":218,"line":392},[216,1715,319],{"class":318},[216,1717,1718],{"class":236}," result ",[216,1720,240],{"class":284},[216,1722,1723],{"class":236}," ocr",[216,1725,384],{"class":284},[216,1727,1728],{"class":332},"detect_text",[216,1730,336],{"class":222},[216,1732,1733],{"class":284},"&",[216,1735,1454],{"class":280},[216,1737,285],{"class":284},[216,1739,1515],{"class":332},[216,1741,336],{"class":222},[216,1743,339],{"class":243},[216,1745,1746],{"class":247},"invoice.png",[216,1748,339],{"class":243},[216,1750,384],{"class":284},[216,1752,1284],{"class":332},[216,1754,1755],{"class":222},"()),",[216,1757,1758],{"class":284}," &",[216,1760,1692],{"class":236},[216,1762,261],{"class":222},[216,1764,546],{"class":284},[216,1766,549],{"class":222},[216,1768,1769],{"class":218,"line":411},[216,1770,305],{"emptyLinePlaceholder":304},[216,1772,1773,1777,1780,1783,1785,1788,1790,1793,1795,1797,1799],{"class":218,"line":426},[216,1774,1776],{"class":1775},"sRxSC","if",[216,1778,1779],{"class":318}," let",[216,1781,1782],{"class":280}," DetectTextResult",[216,1784,285],{"class":284},[216,1786,1787],{"class":332},"Structured",[216,1789,336],{"class":222},[216,1791,1792],{"class":236},"items",[216,1794,261],{"class":222},[216,1796,1569],{"class":284},[216,1798,1718],{"class":236},[216,1800,1021],{"class":222},[216,1802,1803,1806,1809,1812,1815],{"class":218,"line":445},[216,1804,1805],{"class":1775},"    for",[216,1807,1808],{"class":236}," item ",[216,1810,1811],{"class":276},"in",[216,1813,1814],{"class":236}," items ",[216,1816,1021],{"class":222},[216,1818,1819,1822,1824,1826,1829,1832,1834,1837,1839,1842],{"class":218,"line":464},[216,1820,1821],{"class":332},"        println!",[216,1823,336],{"class":222},[216,1825,339],{"class":243},[216,1827,1828],{"class":247},"Teks: ",[216,1830,1831],{"class":243},"{}\"",[216,1833,293],{"class":222},[216,1835,1836],{"class":236}," item",[216,1838,384],{"class":284},[216,1840,1841],{"class":236},"text",[216,1843,510],{"class":222},[216,1845,1846,1848,1850,1852,1855,1857,1860,1863,1865,1867,1869,1872],{"class":218,"line":479},[216,1847,1821],{"class":332},[216,1849,336],{"class":222},[216,1851,339],{"class":243},[216,1853,1854],{"class":247},"Skor: ",[216,1856,288],{"class":243},[216,1858,1859],{"class":247},":.3",[216,1861,1862],{"class":243},"}\"",[216,1864,293],{"class":222},[216,1866,1836],{"class":236},[216,1868,384],{"class":284},[216,1870,1871],{"class":236},"score",[216,1873,510],{"class":222},[216,1875,1876,1878,1880,1882,1885,1887,1890,1892,1894,1896,1898,1901],{"class":218,"line":498},[216,1877,1821],{"class":332},[216,1879,336],{"class":222},[216,1881,339],{"class":243},[216,1883,1884],{"class":247},"Titik Poligon [TL, TR, BR, BL]: ",[216,1886,288],{"class":243},[216,1888,1889],{"class":247},":?",[216,1891,1862],{"class":243},[216,1893,293],{"class":222},[216,1895,1836],{"class":236},[216,1897,384],{"class":284},[216,1899,1900],{"class":236},"box_points",[216,1902,510],{"class":222},[216,1904,1905,1907],{"class":218,"line":513},[216,1906,1821],{"class":332},[216,1908,1909],{"class":222},"(\n",[216,1911,1912,1915,1918,1921,1924,1926,1929,1931,1934,1936],{"class":218,"line":518},[216,1913,1914],{"class":243},"            \"",[216,1916,1917],{"class":247},"Frame Kotak Batas: Kiri=",[216,1919,1920],{"class":243},"{}",[216,1922,1923],{"class":247},", Atas=",[216,1925,1920],{"class":243},[216,1927,1928],{"class":247},", Lebar=",[216,1930,1920],{"class":243},[216,1932,1933],{"class":247},", Tinggi=",[216,1935,1831],{"class":243},[216,1937,1044],{"class":222},[216,1939,1940,1943,1945,1948,1950,1953,1955,1957,1959,1961,1963,1966,1968,1970,1972,1974,1976,1979,1981,1983,1985,1987,1989],{"class":218,"line":1245},[216,1941,1942],{"class":236},"            item",[216,1944,384],{"class":284},[216,1946,1947],{"class":236},"frame",[216,1949,384],{"class":284},[216,1951,1952],{"class":236},"left",[216,1954,293],{"class":222},[216,1956,1836],{"class":236},[216,1958,384],{"class":284},[216,1960,1947],{"class":236},[216,1962,384],{"class":284},[216,1964,1965],{"class":236},"top",[216,1967,293],{"class":222},[216,1969,1836],{"class":236},[216,1971,384],{"class":284},[216,1973,1947],{"class":236},[216,1975,384],{"class":284},[216,1977,1978],{"class":236},"width",[216,1980,293],{"class":222},[216,1982,1836],{"class":236},[216,1984,384],{"class":284},[216,1986,1947],{"class":236},[216,1988,384],{"class":284},[216,1990,1991],{"class":236},"height\n",[216,1993,1994],{"class":218,"line":1263},[216,1995,1996],{"class":222},"        );\n",[216,1998,1999],{"class":218,"line":1290},[216,2000,2001],{"class":222},"    }\n",[216,2003,2004],{"class":218,"line":1307},[216,2005,2006],{"class":222},"}\n",[2008,2009,2011],"h4",{"id":2010},"contoh-keluaran","Contoh Keluaran:",[207,2013,2017],{"className":2014,"code":2015,"language":2016,"meta":212,"style":212},"language-json shiki shiki-themes material-theme-lighter github-light github-dark monokai","[\n  {\n    \"text\": \"FAKTUR #98214\",\n    \"score\": 0.992,\n    \"box_points\": [\n      [42.0, 35.0],\n      [210.0, 35.0],\n      [210.0, 58.0],\n      [42.0, 58.0]\n    ],\n    \"frame\": { \"left\": 42.0, \"top\": 35.0, \"width\": 168.0, \"height\": 23.0 }\n  },\n  {\n    \"text\": \"Total Tagihan: Rp4.500.000\",\n    \"score\": 0.985,\n    \"box_points\": [\n      [42.0, 280.0],\n      [265.0, 280.0],\n      [265.0, 304.0],\n      [42.0, 304.0]\n    ],\n    \"frame\": { \"left\": 42.0, \"top\": 280.0, \"width\": 223.0, \"height\": 24.0 }\n  }\n]\n","json",[183,2018,2019,2024,2029,2053,2068,2081,2097,2110,2123,2135,2140,2207,2212,2216,2235,2250,2262,2275,2288,2301,2313,2317,2379,2384],{"__ignoreMap":212},[216,2020,2021],{"class":218,"line":219},[216,2022,2023],{"class":222},"[\n",[216,2025,2026],{"class":218,"line":233},[216,2027,2028],{"class":222},"  {\n",[216,2030,2031,2035,2038,2040,2042,2045,2049,2051],{"class":218,"line":308},[216,2032,2034],{"class":2033},"saDeg","    \"",[216,2036,1841],{"class":2037},"sEff5",[216,2039,339],{"class":2033},[216,2041,205],{"class":222},[216,2043,244],{"class":2044},"sh1VR",[216,2046,2048],{"class":2047},"sINAO","FAKTUR #98214",[216,2050,339],{"class":2044},[216,2052,1044],{"class":222},[216,2054,2055,2057,2059,2061,2063,2066],{"class":218,"line":315},[216,2056,2034],{"class":2033},[216,2058,1871],{"class":2037},[216,2060,339],{"class":2033},[216,2062,205],{"class":222},[216,2064,2065],{"class":379}," 0.992",[216,2067,1044],{"class":222},[216,2069,2070,2072,2074,2076,2078],{"class":218,"line":368},[216,2071,2034],{"class":2033},[216,2073,1900],{"class":2037},[216,2075,339],{"class":2033},[216,2077,205],{"class":222},[216,2079,2080],{"class":222}," [\n",[216,2082,2083,2086,2089,2091,2094],{"class":218,"line":392},[216,2084,2085],{"class":222},"      [",[216,2087,2088],{"class":379},"42.0",[216,2090,293],{"class":222},[216,2092,2093],{"class":379}," 35.0",[216,2095,2096],{"class":222},"],\n",[216,2098,2099,2101,2104,2106,2108],{"class":218,"line":411},[216,2100,2085],{"class":222},[216,2102,2103],{"class":379},"210.0",[216,2105,293],{"class":222},[216,2107,2093],{"class":379},[216,2109,2096],{"class":222},[216,2111,2112,2114,2116,2118,2121],{"class":218,"line":426},[216,2113,2085],{"class":222},[216,2115,2103],{"class":379},[216,2117,293],{"class":222},[216,2119,2120],{"class":379}," 58.0",[216,2122,2096],{"class":222},[216,2124,2125,2127,2129,2131,2133],{"class":218,"line":445},[216,2126,2085],{"class":222},[216,2128,2088],{"class":379},[216,2130,293],{"class":222},[216,2132,2120],{"class":379},[216,2134,230],{"class":222},[216,2136,2137],{"class":218,"line":464},[216,2138,2139],{"class":222},"    ],\n",[216,2141,2142,2144,2146,2148,2150,2153,2155,2158,2160,2162,2165,2167,2169,2171,2173,2175,2177,2179,2181,2183,2185,2187,2190,2192,2194,2197,2199,2201,2204],{"class":218,"line":479},[216,2143,2034],{"class":2033},[216,2145,1947],{"class":2037},[216,2147,339],{"class":2033},[216,2149,205],{"class":222},[216,2151,2152],{"class":222}," {",[216,2154,244],{"class":2033},[216,2156,1952],{"class":2157},"s_MOj",[216,2159,339],{"class":2033},[216,2161,205],{"class":222},[216,2163,2164],{"class":379}," 42.0",[216,2166,293],{"class":222},[216,2168,244],{"class":2033},[216,2170,1965],{"class":2157},[216,2172,339],{"class":2033},[216,2174,205],{"class":222},[216,2176,2093],{"class":379},[216,2178,293],{"class":222},[216,2180,244],{"class":2033},[216,2182,1978],{"class":2157},[216,2184,339],{"class":2033},[216,2186,205],{"class":222},[216,2188,2189],{"class":379}," 168.0",[216,2191,293],{"class":222},[216,2193,244],{"class":2033},[216,2195,2196],{"class":2157},"height",[216,2198,339],{"class":2033},[216,2200,205],{"class":222},[216,2202,2203],{"class":379}," 23.0",[216,2205,2206],{"class":222}," }\n",[216,2208,2209],{"class":218,"line":498},[216,2210,2211],{"class":222},"  },\n",[216,2213,2214],{"class":218,"line":513},[216,2215,2028],{"class":222},[216,2217,2218,2220,2222,2224,2226,2228,2231,2233],{"class":218,"line":518},[216,2219,2034],{"class":2033},[216,2221,1841],{"class":2037},[216,2223,339],{"class":2033},[216,2225,205],{"class":222},[216,2227,244],{"class":2044},[216,2229,2230],{"class":2047},"Total Tagihan: Rp4.500.000",[216,2232,339],{"class":2044},[216,2234,1044],{"class":222},[216,2236,2237,2239,2241,2243,2245,2248],{"class":218,"line":1245},[216,2238,2034],{"class":2033},[216,2240,1871],{"class":2037},[216,2242,339],{"class":2033},[216,2244,205],{"class":222},[216,2246,2247],{"class":379}," 0.985",[216,2249,1044],{"class":222},[216,2251,2252,2254,2256,2258,2260],{"class":218,"line":1263},[216,2253,2034],{"class":2033},[216,2255,1900],{"class":2037},[216,2257,339],{"class":2033},[216,2259,205],{"class":222},[216,2261,2080],{"class":222},[216,2263,2264,2266,2268,2270,2273],{"class":218,"line":1290},[216,2265,2085],{"class":222},[216,2267,2088],{"class":379},[216,2269,293],{"class":222},[216,2271,2272],{"class":379}," 280.0",[216,2274,2096],{"class":222},[216,2276,2277,2279,2282,2284,2286],{"class":218,"line":1307},[216,2278,2085],{"class":222},[216,2280,2281],{"class":379},"265.0",[216,2283,293],{"class":222},[216,2285,2272],{"class":379},[216,2287,2096],{"class":222},[216,2289,2290,2292,2294,2296,2299],{"class":218,"line":1313},[216,2291,2085],{"class":222},[216,2293,2281],{"class":379},[216,2295,293],{"class":222},[216,2297,2298],{"class":379}," 304.0",[216,2300,2096],{"class":222},[216,2302,2303,2305,2307,2309,2311],{"class":218,"line":1330},[216,2304,2085],{"class":222},[216,2306,2088],{"class":379},[216,2308,293],{"class":222},[216,2310,2298],{"class":379},[216,2312,230],{"class":222},[216,2314,2315],{"class":218,"line":1349},[216,2316,2139],{"class":222},[216,2318,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357,2359,2361,2364,2366,2368,2370,2372,2374,2377],{"class":218,"line":1369},[216,2320,2034],{"class":2033},[216,2322,1947],{"class":2037},[216,2324,339],{"class":2033},[216,2326,205],{"class":222},[216,2328,2152],{"class":222},[216,2330,244],{"class":2033},[216,2332,1952],{"class":2157},[216,2334,339],{"class":2033},[216,2336,205],{"class":222},[216,2338,2164],{"class":379},[216,2340,293],{"class":222},[216,2342,244],{"class":2033},[216,2344,1965],{"class":2157},[216,2346,339],{"class":2033},[216,2348,205],{"class":222},[216,2350,2272],{"class":379},[216,2352,293],{"class":222},[216,2354,244],{"class":2033},[216,2356,1978],{"class":2157},[216,2358,339],{"class":2033},[216,2360,205],{"class":222},[216,2362,2363],{"class":379}," 223.0",[216,2365,293],{"class":222},[216,2367,244],{"class":2033},[216,2369,2196],{"class":2157},[216,2371,339],{"class":2033},[216,2373,205],{"class":222},[216,2375,2376],{"class":379}," 24.0",[216,2378,2206],{"class":222},[216,2380,2381],{"class":218,"line":1389},[216,2382,2383],{"class":222},"  }\n",[216,2385,2386],{"class":218,"line":1409},[216,2387,230],{"class":222},[253,2389],{},[551,2391,2393],{"id":2392},"contoh-b-rekonstruksi-tata-letak-spasial-dokumen","Contoh B: Rekonstruksi Tata Letak Spasial Dokumen",[179,2395,2396],{},"Pertahankan perataan kolom tabel, faktur, dan formulir menjadi format teks rapi:",[207,2398,2400],{"className":267,"code":2399,"language":269,"meta":212,"style":212},"use rusto::{DetectTextResult, ImageSource, OcrRunOptions, OutputGranularity};\n\nlet mut options = OcrRunOptions::default();\noptions.output = OutputGranularity::Spatial;\noptions.line_y_threshold = Some(0.5);\noptions.word_x_threshold = Some(0.4);\n\nif let DetectTextResult::Spatial(layout_text) = ocr.detect_text(\n    &ImageSource::Path(\"table.png\".into()),\n    &options,\n)? {\n    println!(\"{layout_text}\");\n}\n",[183,2401,2402,2428,2432,2450,2469,2492,2515,2519,2548,2574,2582,2590,2606],{"__ignoreMap":212},[216,2403,2404,2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426],{"class":218,"line":219},[216,2405,277],{"class":276},[216,2407,281],{"class":280},[216,2409,285],{"class":284},[216,2411,288],{"class":222},[216,2413,1646],{"class":280},[216,2415,293],{"class":222},[216,2417,1031],{"class":280},[216,2419,293],{"class":222},[216,2421,1036],{"class":280},[216,2423,293],{"class":222},[216,2425,1041],{"class":280},[216,2427,299],{"class":222},[216,2429,2430],{"class":218,"line":233},[216,2431,305],{"emptyLinePlaceholder":304},[216,2433,2434,2436,2438,2440,2442,2444,2446,2448],{"class":218,"line":308},[216,2435,319],{"class":318},[216,2437,524],{"class":523},[216,2439,1066],{"class":236},[216,2441,240],{"class":284},[216,2443,1036],{"class":280},[216,2445,285],{"class":284},[216,2447,1301],{"class":332},[216,2449,1687],{"class":222},[216,2451,2452,2454,2456,2458,2460,2462,2464,2467],{"class":218,"line":315},[216,2453,1692],{"class":236},[216,2455,384],{"class":284},[216,2457,1697],{"class":236},[216,2459,240],{"class":284},[216,2461,1041],{"class":280},[216,2463,285],{"class":284},[216,2465,2466],{"class":280},"Spatial",[216,2468,549],{"class":222},[216,2470,2471,2473,2475,2478,2480,2482,2484,2486,2488,2490],{"class":218,"line":368},[216,2472,1692],{"class":236},[216,2474,384],{"class":284},[216,2476,2477],{"class":236},"line_y_threshold ",[216,2479,240],{"class":284},[216,2481,1102],{"class":280},[216,2483,336],{"class":222},[216,2485,380],{"class":379},[216,2487,384],{"class":383},[216,2489,493],{"class":379},[216,2491,510],{"class":222},[216,2493,2494,2496,2498,2501,2503,2505,2507,2509,2511,2513],{"class":218,"line":392},[216,2495,1692],{"class":236},[216,2497,384],{"class":284},[216,2499,2500],{"class":236},"word_x_threshold ",[216,2502,240],{"class":284},[216,2504,1102],{"class":280},[216,2506,336],{"class":222},[216,2508,380],{"class":379},[216,2510,384],{"class":383},[216,2512,1134],{"class":379},[216,2514,510],{"class":222},[216,2516,2517],{"class":218,"line":411},[216,2518,305],{"emptyLinePlaceholder":304},[216,2520,2521,2523,2525,2527,2529,2531,2533,2536,2538,2540,2542,2544,2546],{"class":218,"line":426},[216,2522,1776],{"class":1775},[216,2524,1779],{"class":318},[216,2526,1782],{"class":280},[216,2528,285],{"class":284},[216,2530,2466],{"class":332},[216,2532,336],{"class":222},[216,2534,2535],{"class":236},"layout_text",[216,2537,261],{"class":222},[216,2539,1569],{"class":284},[216,2541,1723],{"class":236},[216,2543,384],{"class":284},[216,2545,1728],{"class":332},[216,2547,1909],{"class":222},[216,2549,2550,2553,2555,2557,2559,2561,2563,2566,2568,2570,2572],{"class":218,"line":445},[216,2551,2552],{"class":284},"    &",[216,2554,1454],{"class":280},[216,2556,285],{"class":284},[216,2558,1515],{"class":332},[216,2560,336],{"class":222},[216,2562,339],{"class":243},[216,2564,2565],{"class":247},"table.png",[216,2567,339],{"class":243},[216,2569,384],{"class":284},[216,2571,1284],{"class":332},[216,2573,1287],{"class":222},[216,2575,2576,2578,2580],{"class":218,"line":464},[216,2577,2552],{"class":284},[216,2579,1692],{"class":236},[216,2581,1044],{"class":222},[216,2583,2584,2586,2588],{"class":218,"line":479},[216,2585,261],{"class":222},[216,2587,546],{"class":284},[216,2589,1073],{"class":222},[216,2591,2592,2595,2597,2600,2602,2604],{"class":218,"line":498},[216,2593,2594],{"class":332},"    println!",[216,2596,336],{"class":222},[216,2598,2599],{"class":243},"\"{",[216,2601,2535],{"class":247},[216,2603,1862],{"class":243},[216,2605,510],{"class":222},[216,2607,2608],{"class":218,"line":513},[216,2609,2006],{"class":222},[2008,2611,2011],{"id":2612},"contoh-keluaran-1",[207,2614,2618],{"className":2615,"code":2617,"language":1841,"meta":212},[2616],"language-text","Deskripsi Barang           Kuantitas    Harga Satuan    Subtotal\nWidget Pro X100                   2       Rp750.000  Rp1.500.000\nKabel Daya Tahan Tinggi           4       Rp125.000    Rp500.000\nBraket Pemasangan                 1       Rp350.000    Rp350.000\n────────────────────────────────────────────────────────────────\nTotal Pembayaran:                                    Rp2.350.000\n",[183,2619,2617],{"__ignoreMap":212},[253,2621],{},[551,2623,2625],{"id":2624},"contoh-c-pemrosesan-batch-multi-thread-dengan-rayon","Contoh C: Pemrosesan Batch Multi-Thread dengan Rayon",[179,2627,2628,2629,2632],{},"Karena instance ",[183,2630,2631],{},"RustO"," memiliki status sesi inferensi, gunakan instance lokal per thread atau worker pool untuk beban kerja paralel:",[207,2634,2636],{"className":267,"code":2635,"language":269,"meta":212,"style":212},"use rayon::prelude::*;\nuse rusto::{DetectTextResult, ImageSource, InitializeConfig, OcrRunOptions, RustO};\nuse std::path::PathBuf;\n\nlet image_paths: Vec\u003CPathBuf> = vec![\n    \"doc1.jpg\".into(),\n    \"doc2.jpg\".into(),\n    \"doc3.jpg\".into(),\n    \"doc4.jpg\".into(),\n];\n\n\u002F\u002F Proses secara bersamaan di beberapa inti CPU\nimage_paths.par_iter().for_each(|path| {\n    \u002F\u002F Setiap thread menginisialisasi sesinya sendiri yang ringan\n    let config = InitializeConfig::ppv6(\"models\u002Fdet.rten\", \"models\u002Frec.rten\", \"models\u002Fdict.txt\");\n    let mut thread_ocr = RustO::initialize(config).expect(\"Gagal inisialisasi thread OCR\");\n\n    let result = thread_ocr.detect_text(\n        &ImageSource::Path(path.clone()),\n        &OcrRunOptions::default(),\n    ).expect(\"Terjadi kesalahan OCR\");\n\n    if let DetectTextResult::Structured(lines) = result {\n        println!(\"Selesai memproses {:?}: ditemukan {} baris\", path, lines.len());\n    }\n});\n",[183,2637,2638,2655,2685,2701,2705,2729,2745,2760,2775,2790,2795,2799,2804,2833,2838,2879,2918,2922,2939,2960,2972,2992,2996,3022,3068,3072],{"__ignoreMap":212},[216,2639,2640,2642,2645,2647,2650,2653],{"class":218,"line":219},[216,2641,277],{"class":276},[216,2643,2644],{"class":280}," rayon",[216,2646,285],{"class":284},[216,2648,2649],{"class":280},"prelude",[216,2651,2652],{"class":284},"::*",[216,2654,549],{"class":222},[216,2656,2657,2659,2661,2663,2665,2667,2669,2671,2673,2675,2677,2679,2681,2683],{"class":218,"line":233},[216,2658,277],{"class":276},[216,2660,281],{"class":280},[216,2662,285],{"class":284},[216,2664,288],{"class":222},[216,2666,1646],{"class":280},[216,2668,293],{"class":222},[216,2670,1031],{"class":280},[216,2672,293],{"class":222},[216,2674,327],{"class":280},[216,2676,293],{"class":222},[216,2678,1036],{"class":280},[216,2680,293],{"class":222},[216,2682,296],{"class":280},[216,2684,299],{"class":222},[216,2686,2687,2689,2691,2693,2695,2697,2699],{"class":218,"line":308},[216,2688,277],{"class":276},[216,2690,775],{"class":280},[216,2692,285],{"class":284},[216,2694,1483],{"class":280},[216,2696,285],{"class":284},[216,2698,1488],{"class":280},[216,2700,549],{"class":222},[216,2702,2703],{"class":218,"line":315},[216,2704,305],{"emptyLinePlaceholder":304},[216,2706,2707,2709,2712,2714,2716,2718,2720,2722,2724,2727],{"class":218,"line":368},[216,2708,319],{"class":318},[216,2710,2711],{"class":236}," image_paths",[216,2713,205],{"class":284},[216,2715,1557],{"class":280},[216,2717,1560],{"class":222},[216,2719,1488],{"class":280},[216,2721,1566],{"class":222},[216,2723,1569],{"class":284},[216,2725,2726],{"class":332}," vec!",[216,2728,2023],{"class":222},[216,2730,2731,2733,2736,2738,2740,2742],{"class":218,"line":392},[216,2732,2034],{"class":243},[216,2734,2735],{"class":247},"doc1.jpg",[216,2737,339],{"class":243},[216,2739,384],{"class":284},[216,2741,1284],{"class":332},[216,2743,2744],{"class":222},"(),\n",[216,2746,2747,2749,2752,2754,2756,2758],{"class":218,"line":411},[216,2748,2034],{"class":243},[216,2750,2751],{"class":247},"doc2.jpg",[216,2753,339],{"class":243},[216,2755,384],{"class":284},[216,2757,1284],{"class":332},[216,2759,2744],{"class":222},[216,2761,2762,2764,2767,2769,2771,2773],{"class":218,"line":426},[216,2763,2034],{"class":243},[216,2765,2766],{"class":247},"doc3.jpg",[216,2768,339],{"class":243},[216,2770,384],{"class":284},[216,2772,1284],{"class":332},[216,2774,2744],{"class":222},[216,2776,2777,2779,2782,2784,2786,2788],{"class":218,"line":445},[216,2778,2034],{"class":243},[216,2780,2781],{"class":247},"doc4.jpg",[216,2783,339],{"class":243},[216,2785,384],{"class":284},[216,2787,1284],{"class":332},[216,2789,2744],{"class":222},[216,2791,2792],{"class":218,"line":464},[216,2793,2794],{"class":222},"];\n",[216,2796,2797],{"class":218,"line":479},[216,2798,305],{"emptyLinePlaceholder":304},[216,2800,2801],{"class":218,"line":498},[216,2802,2803],{"class":311},"\u002F\u002F Proses secara bersamaan di beberapa inti CPU\n",[216,2805,2806,2809,2811,2814,2817,2819,2822,2824,2827,2829,2831],{"class":218,"line":513},[216,2807,2808],{"class":236},"image_paths",[216,2810,384],{"class":284},[216,2812,2813],{"class":332},"par_iter",[216,2815,2816],{"class":222},"()",[216,2818,384],{"class":284},[216,2820,2821],{"class":332},"for_each",[216,2823,336],{"class":222},[216,2825,2826],{"class":284},"|",[216,2828,1483],{"class":236},[216,2830,2826],{"class":284},[216,2832,1073],{"class":222},[216,2834,2835],{"class":218,"line":518},[216,2836,2837],{"class":311},"    \u002F\u002F Setiap thread menginisialisasi sesinya sendiri yang ringan\n",[216,2839,2840,2843,2845,2847,2849,2851,2853,2855,2857,2859,2861,2863,2865,2867,2869,2871,2873,2875,2877],{"class":218,"line":1245},[216,2841,2842],{"class":318},"    let",[216,2844,322],{"class":236},[216,2846,240],{"class":284},[216,2848,327],{"class":280},[216,2850,285],{"class":284},[216,2852,333],{"class":332},[216,2854,336],{"class":222},[216,2856,339],{"class":243},[216,2858,342],{"class":247},[216,2860,339],{"class":243},[216,2862,293],{"class":222},[216,2864,244],{"class":243},[216,2866,351],{"class":247},[216,2868,339],{"class":243},[216,2870,293],{"class":222},[216,2872,244],{"class":243},[216,2874,360],{"class":247},[216,2876,339],{"class":243},[216,2878,510],{"class":222},[216,2880,2881,2883,2885,2888,2890,2892,2894,2896,2898,2900,2902,2904,2907,2909,2911,2914,2916],{"class":218,"line":1263},[216,2882,2842],{"class":318},[216,2884,524],{"class":523},[216,2886,2887],{"class":236}," thread_ocr ",[216,2889,240],{"class":284},[216,2891,296],{"class":280},[216,2893,285],{"class":284},[216,2895,536],{"class":332},[216,2897,336],{"class":222},[216,2899,541],{"class":236},[216,2901,261],{"class":222},[216,2903,384],{"class":284},[216,2905,2906],{"class":332},"expect",[216,2908,336],{"class":222},[216,2910,339],{"class":243},[216,2912,2913],{"class":247},"Gagal inisialisasi thread OCR",[216,2915,339],{"class":243},[216,2917,510],{"class":222},[216,2919,2920],{"class":218,"line":1290},[216,2921,305],{"emptyLinePlaceholder":304},[216,2923,2924,2926,2928,2930,2933,2935,2937],{"class":218,"line":1307},[216,2925,2842],{"class":318},[216,2927,1718],{"class":236},[216,2929,240],{"class":284},[216,2931,2932],{"class":236}," thread_ocr",[216,2934,384],{"class":284},[216,2936,1728],{"class":332},[216,2938,1909],{"class":222},[216,2940,2941,2944,2946,2948,2950,2952,2954,2956,2958],{"class":218,"line":1313},[216,2942,2943],{"class":284},"        &",[216,2945,1454],{"class":280},[216,2947,285],{"class":284},[216,2949,1515],{"class":332},[216,2951,336],{"class":222},[216,2953,1483],{"class":236},[216,2955,384],{"class":284},[216,2957,910],{"class":332},[216,2959,1287],{"class":222},[216,2961,2962,2964,2966,2968,2970],{"class":218,"line":1330},[216,2963,2943],{"class":284},[216,2965,164],{"class":280},[216,2967,285],{"class":284},[216,2969,1301],{"class":332},[216,2971,2744],{"class":222},[216,2973,2974,2977,2979,2981,2983,2985,2988,2990],{"class":218,"line":1349},[216,2975,2976],{"class":222},"    )",[216,2978,384],{"class":284},[216,2980,2906],{"class":332},[216,2982,336],{"class":222},[216,2984,339],{"class":243},[216,2986,2987],{"class":247},"Terjadi kesalahan OCR",[216,2989,339],{"class":243},[216,2991,510],{"class":222},[216,2993,2994],{"class":218,"line":1369},[216,2995,305],{"emptyLinePlaceholder":304},[216,2997,2998,3001,3003,3005,3007,3009,3011,3014,3016,3018,3020],{"class":218,"line":1389},[216,2999,3000],{"class":1775},"    if",[216,3002,1779],{"class":318},[216,3004,1782],{"class":280},[216,3006,285],{"class":284},[216,3008,1787],{"class":332},[216,3010,336],{"class":222},[216,3012,3013],{"class":236},"lines",[216,3015,261],{"class":222},[216,3017,1569],{"class":284},[216,3019,1718],{"class":236},[216,3021,1021],{"class":222},[216,3023,3024,3026,3028,3030,3033,3035,3037,3040,3043,3045,3048,3050,3052,3055,3057,3060,3062,3065],{"class":218,"line":1409},[216,3025,1821],{"class":332},[216,3027,336],{"class":222},[216,3029,339],{"class":243},[216,3031,3032],{"class":247},"Selesai memproses ",[216,3034,288],{"class":243},[216,3036,1889],{"class":247},[216,3038,3039],{"class":243},"}",[216,3041,3042],{"class":247},": ditemukan ",[216,3044,1920],{"class":243},[216,3046,3047],{"class":247}," baris",[216,3049,339],{"class":243},[216,3051,293],{"class":222},[216,3053,3054],{"class":236}," path",[216,3056,293],{"class":222},[216,3058,3059],{"class":236}," lines",[216,3061,384],{"class":284},[216,3063,3064],{"class":332},"len",[216,3066,3067],{"class":222},"());\n",[216,3069,3070],{"class":218,"line":1422},[216,3071,2001],{"class":222},[216,3073,3074],{"class":218,"line":1427},[216,3075,3076],{"class":222},"});\n",[3078,3079,3080],"style",{},"html pre.shiki code .swvn1, html code.shiki .swvn1{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sQqfL, html code.shiki .sQqfL{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#F8F8F2}html pre.shiki code .ss--_, html code.shiki .ss--_{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .shWJe, html code.shiki .shWJe{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sKvfc, html code.shiki .sKvfc{--shiki-light:#E2931D;--shiki-light-text-decoration:inherit;--shiki-default:#6F42C1;--shiki-default-text-decoration:inherit;--shiki-dark:#B392F0;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .sGXK2, html code.shiki .sGXK2{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .ss7Ak, html code.shiki .ss7Ak{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-sepia:#88846F;--shiki-sepia-font-style:inherit}html pre.shiki code .srJo8, html code.shiki .srJo8{--shiki-light:#9C3EDA;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sD0ED, html code.shiki .sD0ED{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sYThS, html code.shiki .sYThS{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sMTiH, html code.shiki .sMTiH{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sTNss, html code.shiki .sTNss{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sRxSC, html code.shiki .sRxSC{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#F92672;--shiki-sepia-font-style:inherit}html pre.shiki code .saDeg, html code.shiki .saDeg{--shiki-light:#39ADB5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sEff5, html code.shiki .sEff5{--shiki-light:#9C3EDA;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sh1VR, html code.shiki .sh1VR{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#CFCFC2}html pre.shiki code .sINAO, html code.shiki .sINAO{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#CFCFC2}html pre.shiki code .s_MOj, html code.shiki .s_MOj{--shiki-light:#E2931D;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}",{"title":212,"searchDepth":233,"depth":233,"links":3082},[3083,3084,3089,3091,3092],{"id":195,"depth":233,"text":15},{"id":257,"depth":233,"text":3085,"children":3086},"1. Inisialisasi Mesin (InitializeConfig)",[3087,3088],{"id":553,"depth":308,"text":554},{"id":696,"depth":308,"text":697},{"id":996,"depth":233,"text":3090},"2. Opsi Permintaan Lokal (OcrRunOptions)",{"id":1448,"depth":233,"text":1449},{"id":1623,"depth":233,"text":1624,"children":3093},[3094,3095,3096],{"id":1627,"depth":308,"text":1628},{"id":2392,"depth":308,"text":2393},{"id":2624,"depth":308,"text":2625},"Penggunaan mesin dan API RustO! berbasis Rust murni pada aplikasi Rust.","md",null,{},{"icon":39},{"title":3103,"description":3097},"Menggunakan Rust - RustO!","6RX4oLEcGDW4HJIUntmU22sZ0hVGE7Sxmr2s-SPugF0",[3106,3108],{"title":25,"path":26,"stem":27,"description":3107,"icon":28,"children":-1},"Coba OCR RustO! langsung di peramban web Anda bertenaga WebAssembly dan model PaddleOCR.",{"title":41,"path":42,"stem":43,"description":3109,"icon":44,"children":-1},"Penggunaan RustODotnet pada aplikasi C# dan .NET di Windows, Linux, dan macOS.",1792905890176]