51 lines
1.4 KiB
PHP
51 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Laporan;
|
|
use App\Models\Pelaku;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Http;
|
|
|
|
|
|
class FaceRecognitionController extends Controller
|
|
{
|
|
public function deteksiPelakuKejahatan()
|
|
{
|
|
$data = Pelaku::all();
|
|
return view('client-side.laporan.deteksi-pelaku', compact(['data']));
|
|
}
|
|
|
|
public function deteksiProses(Request $request)
|
|
{
|
|
// Validasi input gambar
|
|
$request->validate([
|
|
'image' => 'required|image|max:5000',
|
|
]);
|
|
|
|
// Mendapatkan file gambar dari request
|
|
$imageFile = $request->file('image');
|
|
|
|
// Membuat permintaan HTTP POST ke endpoint Flask API
|
|
$response = Http::attach(
|
|
'image',
|
|
file_get_contents($imageFile->getRealPath()),
|
|
$imageFile->getClientOriginalName()
|
|
)->post('http://localhost:5000/classify');
|
|
|
|
// Mendapatkan hasil klasifikasi dan fitur LBP dari respons API
|
|
$predictions = $response->json();
|
|
$lbpFeatures = $response->header('X-LBP-Features');
|
|
$getImage = Pelaku::where('nama', $predictions[0])->first();
|
|
|
|
// Mengembalikan respons JSON
|
|
return response()->json([
|
|
'predictions' => $predictions,
|
|
'lbpFeatures' => $lbpFeatures,
|
|
'image' => $getImage->image,
|
|
]);
|
|
}
|
|
|
|
|
|
}
|