250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 막내의막무가내 알고리즘
- 안드로이드
- 프로그래머스 알고리즘
- 막내의막무가내
- 안드로이드 sunflower
- 막무가내
- 부스트코스
- 막내의막무가내 플러터
- 막내의 막무가내 알고리즘
- 안드로이드 Sunflower 스터디
- 2022년 6월 일상
- 막내의막무가내 일상
- 막내의막무가내 안드로이드
- 막내의막무가내 목표 및 회고
- 막내의막무가내 안드로이드 코틀린
- 프래그먼트
- 막내의막무가내 코틀린 안드로이드
- Fragment
- 막내의막무가내 코틀린
- 주택가 잠실새내
- 막내의막무가내 SQL
- 막내의막무가내 rxjava
- 막내의막무가내 플러터 flutter
- 막내의막무가내 코볼 COBOL
- flutter network call
- 막내의막무가내 프로그래밍
- 막내의 막무가내
- 막내의막무가내 안드로이드 에러 해결
- 부스트코스에이스
- 주엽역 생활맥주
Archives
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[Flask] 플라스크 서버 -> 안드로이드 클라이언트 이미지 응답받기 본문
728x90
안드로이드 클라이언트 -> 플라스크 서버로 이미지 전송한 후
이미지에 아웃포커싱 시스템을 적용한 후 해당 사진을
플라스크 서버 -> 안드로이드 클라이언트로 이미지 응답하는 것이 필요했습니다.
추후 삽질을 덜기 위해 구현 방법을 기록합니다.
[Flask Server]
send_file(file_dir, mimetype='image/jpg') 을 이용하여 이미지가 있는 경로를 매개변수로 넣어 리턴해줍니다.
# -*- coding: utf-8 -*-
# from google.cloud import storage
import os
# import cv2
from flask import jsonify
import numpy as np
import flask
from flask import request, render_template
from flask import send_file
import io
# import redis
# import tensorflow as tf
# import matplotlib.pyplot as plt
# import cv2
# from flask_cors import CORS, cross_origin
from werkzeug.utils import secure_filename
from werkzeug.datastructures import ImmutableMultiDict
from werkzeug.datastructures import FileStorage
# from blur_process_funcs import *
#from utils import *
# model_path = './model/unet_nomal_ver4.h5'
# Flask 애플리케이션과 Keras 모델을 초기화합니다.
# import redis
# redis_conn = redis.StrictRedis(host='localhost',port=6379,db=0)
# 구현한 유틸리티 import
app = flask.Flask(__name__)
# CORS(app)
# model = load_Model(model_path);
# 파일 업로드
@app.route('/predict', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
print(flask.request.files)
print(flask.request.files.get('image'))
# print(flask.request.files['20200912_174631.jpg'])
print(flask.request.form)
file_dir = "D:\Git\VisionApp\ex1234.jpg"
f2 = flask.request.files.get('image')
f2.save(file_dir)
# img = cv2.imread('D:\Git\VisionApp\ex1234.jpg')
# 내가 찍은 X, Y 좌표 리스트 (Float 형)
#x_list = np.uint(request.form.getlist('x'))
#y_list = np.uint(request.form.getlist('y'))
# 유저 백그라운드 포인트
"""서버에서 positive_anno_mask을 upload_file에 대한 리스폰스값으로 보내야댐"""
# positive_anno_mask = get_User_Annotation_point_Mask(x_list, y_list, img)
# nx_list = np.uint(request.form.getlist('nx'))
# ny_list = np.uint(request.form.getlist('ny'))
# negative_anno_mask = get_User_Annotation_point_Mask(x_list,y_list,img)
# 파일 받기
f = request.files['image']
filename = secure_filename(f.filename)
f.save(os.path.join('./' + filename))
print(f.filename)
sfname = str(secure_filename(f.filename))
f.save(sfname)
return send_file(file_dir, mimetype='image/jpg')
#return "성공"
# 실행에서 메인 쓰레드인 경우, 먼저 모델을 불러온 뒤 서버를 시작합니다.
if __name__ == "__main__":
print(("* Loading Keras model and Flask starting server..."
"please wait until server has fully started"))
# load_model()
# 0.0.0.0 으로 해야 같은 와이파에 폰에서 접속 가능함
app.run(host='0.0.0.0')
# def upload_blob(bucket_name, source_file_name, destination_blob_name):
# """Uploads a file to the bucket."""
# # bucket_name = "your-bucket-name"
# # source_file_name = "local/path/to/file"
# # destination_blob_name = "storage-object-name"
#
# storage_client = storage.Client()
# bucket = storage_client.bucket(bucket_name)
# blob = bucket.blob(destination_blob_name)
#
# blob.upload_from_filename(source_file_name)
#
# print(
# "File {} uploaded to {}.".format(
# source_file_name, destination_blob_name
# )
# )
[Android Client]
ResponseBody 에서 이미지 바이트를 추출하여 비트맵을 만들어 사용합니다.
일반적인 Retorifit2 를 사용했습니다.
apiInteface.getTest(body, xList, yList).enqueue(object : Callback<ResponseBody> {
override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
Log.d("AAA", "FAIL REQUEST ==> " + t.localizedMessage)
drawImageView.clear()
}
override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
Log.d("AAA", "REQUEST SUCCESS ==> ")
val file = response.body()?.byteStream()
val bitmap = BitmapFactory.decodeStream(file)
drawImageView.clear()
}
})
댓글과 공감은 큰 힘이 됩니다. 감사합니다. !
728x90
'웹 > Flask' 카테고리의 다른 글
[Flask] 파이썬 플라스크 (Python Flask) 코드 기록 (1) | 2020.07.03 |
---|---|
[Flask] 플라스크(Flask) 로컬 서버 같은 와이파이 사용하는 모바일에서도 접근 가능하게 하기 (4) | 2020.07.03 |
Comments