testing and added data for testing similarity

This commit is contained in:
kicap1992
2022-10-02 17:55:45 +08:00
parent 34175cf48c
commit f16cc651da
36 changed files with 1161 additions and 452 deletions

File diff suppressed because one or more lines are too long

BIN
1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
aran.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

BIN
circle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

BIN
croped.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

BIN
croped1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

BIN
croped11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

74
dataset.json Normal file
View File

@ -0,0 +1,74 @@
[
{
"id": "1.png",
"datanya": "Garis kehidupan anda yang panjang menunjukkan anda seorang yang lincah dan penuh semangat.\nGaris nasib anda yang tumbuh dari garis pikiran menandakan bahwa anda akan memperoleh nafkah dari bidang seni atau pendidikan seperti seniman, artis, sarjana atau para guru.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "1_2.png",
"datanya": "Garis kehidupan anda yang panjang menunjukkan anda seorang yang lincah dan penuh semangat.\nGaris nasib anda yang tumbuh dari garis pikiran menandakan bahwa anda akan memperoleh nafkah dari bidang seni atau pendidikan seperti seniman, artis, sarjana atau para guru.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "1_3.png",
"datanya": "Garis kehidupan anda yang panjang menunjukkan anda seorang yang lincah dan penuh semangat.\nGaris nasib anda yang tumbuh dari garis pikiran menandakan bahwa anda akan memperoleh nafkah dari bidang seni atau pendidikan seperti seniman, artis, sarjana atau para guru.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "1_4.png",
"datanya": "Garis kehidupan anda yang panjang menunjukkan anda seorang yang lincah dan penuh semangat.\nGaris nasib anda yang tumbuh dari garis pikiran menandakan bahwa anda akan memperoleh nafkah dari bidang seni atau pendidikan seperti seniman, artis, sarjana atau para guru.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "1_5.png",
"datanya": "Garis kehidupan anda yang panjang menunjukkan anda seorang yang lincah dan penuh semangat.\nGaris nasib anda yang tumbuh dari garis pikiran menandakan bahwa anda akan memperoleh nafkah dari bidang seni atau pendidikan seperti seniman, artis, sarjana atau para guru.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "2.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang panjang,tumbuh dari bagian garis kehidupan yang rendah, berarti anda seseorang yang mendapatkan keberuntungan dari ketekunan dan tekadnya yang keras.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "2_2.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang panjang,tumbuh dari bagian garis kehidupan yang rendah, berarti anda seseorang yang mendapatkan keberuntungan dari ketekunan dan tekadnya yang keras.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "2_3.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang panjang,tumbuh dari bagian garis kehidupan yang rendah, berarti anda seseorang yang mendapatkan keberuntungan dari ketekunan dan tekadnya yang keras.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "2_4.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang panjang,tumbuh dari bagian garis kehidupan yang rendah, berarti anda seseorang yang mendapatkan keberuntungan dari ketekunan dan tekadnya yang keras.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "2_5.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang panjang,tumbuh dari bagian garis kehidupan yang rendah, berarti anda seseorang yang mendapatkan keberuntungan dari ketekunan dan tekadnya yang keras.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "2_6.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang panjang,tumbuh dari bagian garis kehidupan yang rendah, berarti anda seseorang yang mendapatkan keberuntungan dari ketekunan dan tekadnya yang keras.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "3.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang tumbuh dari bawah garis kehidupan, bisa jadi seorang anak yang memulai usaha dengan modal dari orang tua, istri bisa berbisnis dengan bantuan modal suami, dan semacamnya.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "3_2.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang tumbuh dari bawah garis kehidupan, bisa jadi seorang anak yang memulai usaha dengan modal dari orang tua, istri bisa berbisnis dengan bantuan modal suami, dan semacamnya.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "3_3.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang tumbuh dari bawah garis kehidupan, bisa jadi seorang anak yang memulai usaha dengan modal dari orang tua, istri bisa berbisnis dengan bantuan modal suami, dan semacamnya.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "3_4.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang tumbuh dari bawah garis kehidupan, bisa jadi seorang anak yang memulai usaha dengan modal dari orang tua, istri bisa berbisnis dengan bantuan modal suami, dan semacamnya.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "3_5.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang tumbuh dari bawah garis kehidupan, bisa jadi seorang anak yang memulai usaha dengan modal dari orang tua, istri bisa berbisnis dengan bantuan modal suami, dan semacamnya.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "3_6.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang tumbuh dari bawah garis kehidupan, bisa jadi seorang anak yang memulai usaha dengan modal dari orang tua, istri bisa berbisnis dengan bantuan modal suami, dan semacamnya.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
},
{
"id": "3_7.png",
"datanya": "Garis kehidupan anda yang pdekat dengan ibu jari menunjukkan anda seseorang yang memiliki vitalitas rendah.\nGaris nasib yang tumbuh dari bawah garis kehidupan, bisa jadi seorang anak yang memulai usaha dengan modal dari orang tua, istri bisa berbisnis dengan bantuan modal suami, dan semacamnya.\nGaris pikiran anda berada di tengah yang menunjukkan garis pikiran yang standar yang naninya akan berkarir biasa dan mendapat pencapaian biasa dalam kehidupan.\nGaris cinta yang sedang menunjukkan anda memiliki kehidupan cinta yang biasa-biasa saja"
}
]

BIN
dst.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
dst2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
hehe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
hije.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

BIN
images/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
images/1_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
images/1_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
images/1_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
images/1_5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
images/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
images/2_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
images/2_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/2_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
images/2_5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
images/2_6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

BIN
images/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
images/3_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
images/3_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/3_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
images/3_5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
images/3_6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
images/3_7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,33 +1,27 @@
import cv2
import numpy as np
# from matplotlib.pyplot import imshow
# from google.colab.patches import cv2_imshow
# !wget https://i.stack.imgur.com/sDQLM.png
#read image
image = cv2.imread( "croped.png")
import json
width = 350
height = 450
dim = (width, height)
data = None
image = cv2.resize(image, dim, interpolation = cv2.INTER_AREA)
with open('dataset.json') as f:
data = json.load(f)
# print(len(data))
#convert to gray
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
#performing binary thresholding
kernel_size = 3
ret,thresh = cv2.threshold(gray,200,255,cv2.THRESH_BINARY)
print(data)
dictionary = [
{
"id" : 4,
"datanya" : "ini yang ke4"
}
]
#finding contours
cnts = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
# # Serializing json
# json_object = json.dumps(dictionary, indent=4)
#drawing Contours
radius =2
color = (30,255,50)
cv2.drawContours(image, cnts, -1,color , radius)
# cv2.imshow(image) commented as colab don't support cv2.imshow()
cv2.imshow("",image)
# cv2.waitKey()
cv2.waitKey(0)
data.extend(dictionary)
json_object = json.dumps(data, indent=4)
print(json_object)
# Writing to sample.json
with open("dataset.json", "w") as outfile:
outfile.write(json_object)

BIN
mask.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because one or more lines are too long

BIN
result.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 MiB

BIN
riska.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

166
server.py
View File

@ -9,6 +9,7 @@ import cv2
import numpy as np
import mediapipe as mp
import matplotlib.pyplot as plt
import json
# First step is to initialize the Hands class an store it in a variable
@ -38,7 +39,8 @@ def read_root():
@app.post("/")
async def image(image: UploadFile = File(...)):
content_type = image.content_type
if(content_type != "image/jpeg" and content_type != "image/png") :
print(content_type)
if(content_type != "image/jpeg" and content_type != "image/png" and content_type != "image/jpg") :
raise HTTPException(status_code=404, detail="Fail bukan foto")
image_name = image.filename
with open("temp/"+image_name, "wb") as buffer:
@ -48,13 +50,19 @@ async def image(image: UploadFile = File(...)):
sample_img = cv2.flip(sample_img, 1)
results = hands.process(cv2.cvtColor(sample_img, cv2.COLOR_BGR2RGB))
if not results.multi_hand_landmarks:
if os.path.exists("temp/"+image_name):
os.remove("temp/"+image_name)
raise HTTPException(status_code=404, detail="Foto harus ada telapak tangan")
if len(results.multi_handedness) > 1:
if os.path.exists("temp/"+image_name):
os.remove("temp/"+image_name)
raise HTTPException(status_code=404, detail="Hanya satu telapak tangan yang bisa diramal")
tangan = results.multi_handedness[0].classification[0].label
if(tangan == 'Right'):
if os.path.exists("temp/"+image_name):
os.remove("temp/"+image_name)
raise HTTPException(status_code=404, detail="Hanya Tangan Kiri Yang Bisa Diramal")
thumb = None
@ -64,20 +72,160 @@ async def image(image: UploadFile = File(...)):
pinky = hand_landmarks.landmark[mp_hands.HandLandmark.PINKY_TIP].x
cek_tapak_tangan = thumb > pinky
if(cek_tapak_tangan == False):
raise HTTPException(status_code=404, detail="Sila foto telapak tangan kiri anda")
if os.path.exists("temp/"+image_name):
os.remove("temp/"+image_name)
raise HTTPException(status_code=404, detail="Sila foto telapak tangan kiri anda")
# if os.path.exists("temp/"+image_name):
# os.remove("temp/"+image_name)
return {"message": "lakukan ramalan"}
@app.post("/ramalan")
async def image( request: Request):
# @app.post("/ramalan")
# async def image( request: Request):
# body = await request.form()
# if body:
# print(body['image'].content_type)
# return {"filename": "image.filename"}
# else :
# raise HTTPException(status_code=404, detail="error")
def makeCircle(img,circle_y,circle_x,radius):
image_height, image_width, _ = img.shape
y = int(circle_y * image_height)
x = int(circle_x * image_width)
circle_coordinates = (x,y)
color = (255, 0, 0)
thickness = 2
return cv2.circle(img,circle_coordinates,radius,color,thickness)
@app.post("/ramalan")
async def ramalan(request: Request):
body = await request.form()
if body:
print(body['image'].file)
return {"filename": "image.filename"}
else :
if(body == False) :
raise HTTPException(status_code=404, detail="error")
if(body['image'] == None and body['image'] == '' ):
raise HTTPException(status_code=404, detail="error")
# print(body['image'])
image_file = body['image'] #ini file yang akan digunakan
image_src = "temp/"+body['image'] #ini file yang akan digunakan
size = len(image_file)
image_name = image_file[:size - 4]
change_background_mp = mp.solutions.selfie_segmentation #untuk hapus background
change_bg_segment = change_background_mp.SelfieSegmentation() #untuk hapus background
with mp_hands.Hands(
static_image_mode=True,
max_num_hands=1,
min_detection_confidence=0.5) as hands:
image = cv2.flip(cv2.imread(image_src), 1)
sample_img = cv2.flip(cv2.imread(image_src), 1)
image = cv2.cvtColor(sample_img, cv2.COLOR_BGR2RGB)
image = change_bg_segment.process(image)
image = image.segmentation_mask > 0.9
image = np.dstack((image,image,image))
image = np.where(image, sample_img, 255)
shape = image.shape
results = hands.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
image_height, image_width, _ = image.shape
for hand_landmarks in results.multi_hand_landmarks:
palm_center_y = (hand_landmarks.landmark[mp_hands.HandLandmark.THUMB_CMC].y +
hand_landmarks.landmark[mp_hands.HandLandmark.PINKY_MCP].y)/2.1
palm_center_x = (hand_landmarks.landmark[mp_hands.HandLandmark.THUMB_CMC].x +
hand_landmarks.landmark[mp_hands.HandLandmark.PINKY_MCP].x)/2.1
myradius = int(image_height/4.9)
y = int(palm_center_y * image_height)
x = int(palm_center_x * image_width)
circle_coordinates = (x,y)
mask = np.zeros(image.shape, dtype=np.uint8)
cv2.circle(mask, circle_coordinates, myradius, (255,255,255), -1)
ROI = cv2.bitwise_and(image, mask)
mask = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY)
x,y,w,h = cv2.boundingRect(mask)
result = ROI[y:y+h,x:x+w]
mask = mask[y:y+h,x:x+w]
result[mask==0] = (255,255,255)
cv2.imwrite("temp/"+image_name+"cropped.png", result)
cv2.waitKey(0)
image = cv2.imread("temp/"+image_name+"cropped.png")
width = 450
height = 450
dim = (width, height)
image = cv2.resize(image, dim, interpolation = cv2.INTER_AREA)
# cv2.imshow("palm",image) #to view the palm in python
# cv2.waitKey(0)
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,30,80,apertureSize = 3)
# cv2.imshow("edges in palm",edges)
# cv2.waitKey(0)
edges = cv2.bitwise_not(edges)
# cv2.imshow("edges in palm1",edges)
cv2.imwrite("temp/"+image_name+"lines.png", edges)
cv2.waitKey(0)
TARGET_FILE = "temp/"+image_name+"lines.png"
IMG_DIR = os.path.abspath(os.path.dirname(__file__)) + '/images/'
IMG_SIZE = (200, 200)
target_img = cv2.imread(TARGET_FILE)
target_img = cv2.resize(target_img, IMG_SIZE)
print('TARGET_FILE: %s' % (TARGET_FILE))
bf = cv2.BFMatcher(cv2.NORM_HAMMING)
detector = cv2.AKAZE_create()
(target_kp, target_des) = detector.detectAndCompute(target_img, None)
hasil_ramalan = None
datas = None
with open('dataset.json') as f:
datas = json.load(f)
pilihan = 2000
image_ramalan = None
files = os.listdir(IMG_DIR)
for file in files:
comparing_img_path = IMG_DIR + file
try:
comparing_img = cv2.imread(comparing_img_path, cv2.IMREAD_GRAYSCALE)
comparing_img = cv2.resize(comparing_img, IMG_SIZE)
(comparing_kp, comparing_des) = detector.detectAndCompute(comparing_img, None)
matches = bf.match(target_des, comparing_des)
dist = [m.distance for m in matches]
ret = sum(dist) / len(dist)
except cv2.error:
ret = 100000
print(file, ret)
if(ret < pilihan):
pilihan =ret
image_ramalan = file
theindex = None
for index,data in enumerate(datas):
if(data["id"] == image_ramalan):
theindex= index
hasil_ramalan = datas[theindex]['datanya']
# if os.path.exists("temp/"):
# os.remove("temp/"+image_name+"lines.png")
# os.remove("temp/"+image_name+"cropped.png")
# os.remove("temp/"+body['image'])
return {"message": hasil_ramalan}