modified logic in ocr
This commit is contained in:
@@ -386,42 +386,6 @@ function cameraCapture() {
|
||||
// await this.verifyOCR(dataUrl);
|
||||
// },
|
||||
|
||||
// async verify() {
|
||||
// const filePath = this.$refs.hiddenInput.value; // e.g., "temp/capture_1760764396.jpeg"
|
||||
|
||||
// if (!filePath) {
|
||||
// alert("No captured image found!");
|
||||
// return;
|
||||
// }
|
||||
|
||||
// try {
|
||||
// const response = await fetch('/verify-ocr', {
|
||||
// method: 'POST',
|
||||
// headers: {
|
||||
// 'Content-Type': 'application/json',
|
||||
// 'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||
// },
|
||||
// body: JSON.stringify({ path: filePath })
|
||||
// });
|
||||
|
||||
// const data = await response.json();
|
||||
|
||||
// console.log(data);
|
||||
|
||||
// if (data.success) {
|
||||
// alert("OCR Result: " + data.text);
|
||||
// console.error(data.text);
|
||||
// } else {
|
||||
// alert("OCR Failed: " + data.error);
|
||||
// console.error(data.error);
|
||||
// }
|
||||
// } catch (err) {
|
||||
// console.error(err.message);
|
||||
// alert("OCR request failed: " + err.message);
|
||||
// }
|
||||
// },
|
||||
|
||||
|
||||
async verify() {
|
||||
const filePath = this.$refs.hiddenInput.value; // e.g., "temp/capture_1760764396.jpeg"
|
||||
|
||||
@@ -442,19 +406,27 @@ function cameraCapture() {
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
console.log(data);
|
||||
|
||||
// if (data.success) {
|
||||
// alert("OCR Result: " + data.text);
|
||||
// console.error(data.text);
|
||||
// }
|
||||
if (data.success) {
|
||||
// data.text is now an array of serials
|
||||
console.log("Serials:", data.text);
|
||||
alert("OCR Result:\n" + data.text.join("\n")); // show nicely
|
||||
} else {
|
||||
console.error("OCR Error:", data.error);
|
||||
const serials = Array.isArray(data.text) ? data.text.join("\n") : data.text;
|
||||
alert("OCR Result:\n" + serials);
|
||||
console.log(serials);
|
||||
}
|
||||
else {
|
||||
alert("OCR Failed: " + data.error);
|
||||
console.error(data.error);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("OCR request failed:", err.message);
|
||||
console.error(err.message);
|
||||
alert("OCR request failed: " + err.message);
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
async retakePhoto() {
|
||||
this.photoTaken = false;
|
||||
|
||||
@@ -49,18 +49,14 @@ use thiagoalessio\TesseractOCR\TesseractOCR;
|
||||
->executable('/usr/bin/tesseract')
|
||||
->lang('eng')
|
||||
->psm(6) // treats the image as a block of text
|
||||
//->config(['tessedit_char_whitelist' => '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'])
|
||||
->config(['tessedit_char_whitelist' => '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'])
|
||||
->run();
|
||||
|
||||
return response()->json(['success' => true, 'text' => $text]);
|
||||
// $lines = preg_split('/\r\n|\r|\n/', $text);
|
||||
// $serials = array_filter(array_map('trim', $lines), fn($line) => preg_match('/^[A-Z0-9]+$/', $line));
|
||||
//return response()->json(['success' => true, 'text' => $text]);
|
||||
$lines = preg_split('/\r\n|\r|\n/', $text);
|
||||
$serials = array_filter(array_map('trim', $lines), fn($line) => preg_match('/^[A-Z0-9]+$/i', $line));
|
||||
|
||||
//return response()->json(['success' => true, 'text' => $serials]);
|
||||
// return response()->json([
|
||||
// 'success' => true,
|
||||
// 'text' => array_values($serials), // send as array
|
||||
// ]);
|
||||
return response()->json(['success' => true, 'text' => array_values($serials)]);
|
||||
}
|
||||
//catch (\Exception $e) {
|
||||
// return response()->json(['success' => false, 'error' => $e->getMessage()]);
|
||||
|
||||
Reference in New Issue
Block a user