99 lines
3.2 KiB
Python
99 lines
3.2 KiB
Python
from flask import Flask, request, jsonify
|
|
import cv2
|
|
import numpy as np
|
|
import pytesseract
|
|
import matplotlib.pyplot as plt
|
|
from PIL import Image
|
|
import os
|
|
# from google.colab import files
|
|
|
|
app = Flask(__name__)
|
|
|
|
|
|
@app.route('/', methods=['GET'])
|
|
def hello():
|
|
return jsonify({'response': 'Hello, Flask!'})
|
|
|
|
|
|
# @app.route('/test-form', methods=['POST'])
|
|
# def test_form():
|
|
# nama = request.form['nama']
|
|
# return jsonify({'response': f'Halo, {nama}!'})
|
|
|
|
|
|
# @app.route('/test-form-image', methods=['POST'])
|
|
# def test_form_image():
|
|
# # image = request.form['image']
|
|
# # all_data = {**request.args.to_dict(), **request.form.to_dict(),
|
|
# # **request.files.to_dict()}
|
|
# # return jsonify(request.files)
|
|
# if 'image' in request.files:
|
|
# uploaded_file = request.files['image']
|
|
# # Melihat informasi tentang file
|
|
# # print(f"File Name: {uploaded_file.filename}")
|
|
# # print(f"Content Type: {uploaded_file.content_type}")
|
|
# if uploaded_file.filename == '':
|
|
# return 'No selected file'
|
|
|
|
# # Mendapatkan lokasi dari file Python yang sedang berjalan
|
|
# current_directory = os.path.dirname(os.path.abspath(__file__))
|
|
# uploaded_file.save(os.path.join(
|
|
# current_directory, uploaded_file.filename))
|
|
|
|
# return 'File berhasil diunggah dan disimpan!'
|
|
# # Anda dapat melakukan operasi lain di sini dengan file yang diunggah
|
|
# # Misalnya, menyimpannya ke sistem file dengan:
|
|
# # uploaded_file.save('lokasi_direktori_dan_nama_file_yang_diinginkan')
|
|
# # return 'File berhasil diunggah!'
|
|
# else:
|
|
# return 'Tidak ada file yang diunggah!'
|
|
|
|
|
|
@app.route('/process-image', methods=['POST'])
|
|
def process_image():
|
|
if 'image' in request.files:
|
|
uploaded_file = request.files['image']
|
|
if uploaded_file.filename == '':
|
|
return 'Tidak ada File yang dipih'
|
|
|
|
current_directory = os.getcwd()
|
|
file_directory = os.path.join(
|
|
current_directory, uploaded_file.filename)
|
|
uploaded_file.save(file_directory)
|
|
else:
|
|
return 'Tidak ada file yang diunggah!'
|
|
|
|
try:
|
|
if uploaded_file is not None:
|
|
# Lakukan proses pada data gambar, misalnya menggunakan OpenCV
|
|
# Simpan hasil dalam variabel `result`
|
|
|
|
# Membaca gambar dengan OpenCV
|
|
image = open(file_directory, "rb")
|
|
image_data = image.read()
|
|
image_array = bytearray(image_data)
|
|
nparr = np.frombuffer(image_array, np.uint8)
|
|
img_cv2 = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
|
|
|
|
# read img
|
|
gray = cv2.cvtColor(img_cv2, cv2.COLOR_BGR2GRAY)
|
|
|
|
# (2) Threshold
|
|
th, threshed = cv2.threshold(gray, 127, 255, cv2.THRESH_TRUNC)
|
|
|
|
# (3) Detect
|
|
result = pytesseract.image_to_string((threshed), lang="ind")
|
|
|
|
hasil = result.split("\n")
|
|
|
|
if os.path.exists(file_directory):
|
|
os.remove(file_directory)
|
|
|
|
return jsonify({'status': 'Berhasil', 'result': hasil})
|
|
else:
|
|
return jsonify({'error': 'No image uploaded'})
|
|
|
|
# return jsonify(word)
|
|
except Exception as e:
|
|
return jsonify(error=str(e))
|