193 lines
6.2 KiB
Python
193 lines
6.2 KiB
Python
|
|
from PIL import Image
|
|||
|
|
import numpy as np
|
|||
|
|
import cv2
|
|||
|
|
import base64
|
|||
|
|
import io,os
|
|||
|
|
import requests
|
|||
|
|
import time
|
|||
|
|
|
|||
|
|
def test():
|
|||
|
|
image_path='test/P0017.png'
|
|||
|
|
image_array=cv2.imread(image_path)
|
|||
|
|
print(image_array.shape)
|
|||
|
|
|
|||
|
|
image_encode=base64.b64encode(image_array).decode('utf-8')
|
|||
|
|
image_bytes=bytes(image_encode,encoding='utf-8')
|
|||
|
|
image_decode=np.frombuffer(base64.decodebytes(image_bytes),dtype=np.uint8)
|
|||
|
|
print(image_decode.shape)
|
|||
|
|
|
|||
|
|
request_url='http://192.168.109.49:5000/'
|
|||
|
|
|
|||
|
|
headers={'content-type':'application/json'}
|
|||
|
|
data={'image':image_encode}
|
|||
|
|
|
|||
|
|
#response=requests.post(request_url,data=data,headers=headers)
|
|||
|
|
response=requests.post(request_url,"POST",files=data)
|
|||
|
|
print(response)
|
|||
|
|
#image=open(image_path,'rb').read()
|
|||
|
|
#image=Image.open(io.BytesIO(image))
|
|||
|
|
#image=image.resize((224,224))
|
|||
|
|
#image=np.asarray(image
|
|||
|
|
def test2():
|
|||
|
|
image_path='test/P0017.png'
|
|||
|
|
image_ori=cv2.imread(image_path)
|
|||
|
|
api = 'http://192.168.16.45:8000/detector'
|
|||
|
|
img = cv2.imencode('.jpg', image_ori)[-1]
|
|||
|
|
|
|||
|
|
|
|||
|
|
#image_encode=base64.b64encode(image_ori).decode('utf-8')
|
|||
|
|
#img=bytes(image_encode,encoding='utf-8')
|
|||
|
|
#h,w,c=image_ori.shape
|
|||
|
|
|
|||
|
|
files = {'file': img}
|
|||
|
|
files = {'file': img,'name':'P0017'
|
|||
|
|
}
|
|||
|
|
res = requests.request("POST", api, files=files).json()
|
|||
|
|
|
|||
|
|
if res['msg'] == 'success':
|
|||
|
|
bboxes = res['data']['bboxes']
|
|||
|
|
print(bboxes)
|
|||
|
|
#bboxes = np.asarray(bboxes, dtype=np.int32)
|
|||
|
|
def get_file_content(filePath):
|
|||
|
|
with open(filePath, 'rb') as fp:
|
|||
|
|
return fp.read()
|
|||
|
|
|
|||
|
|
def test3():
|
|||
|
|
image_path='test/P0017.png'
|
|||
|
|
image_ori=cv2.imread(image_path)
|
|||
|
|
api = 'http://192.168.16.45:8000/detector'
|
|||
|
|
#img = cv2.imencode('.jpg', img_ori)[-1]
|
|||
|
|
|
|||
|
|
input_ ={
|
|||
|
|
'img_data':'',
|
|||
|
|
'img_width':512,
|
|||
|
|
'img_height':512,
|
|||
|
|
'img_chs':3
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
with open(image_path,'rb') as f:
|
|||
|
|
input_['img_data']=base64.b64encode(f.read()).decode('utf-8')
|
|||
|
|
|
|||
|
|
image_encode=base64.b64encode(image_ori).decode('utf-8')
|
|||
|
|
image_bytes=bytes(image_encode,encoding='utf-8')
|
|||
|
|
#input_['img_data']=image_bytes
|
|||
|
|
|
|||
|
|
response=requests.post(api,json=input_).json()
|
|||
|
|
print(response['msg'],response['data']['bboxes'])
|
|||
|
|
|
|||
|
|
###---客户端:读取图片:image_ori=cv2.imread(image_path)--->编码base64.b64encode(f.read()).decode('utf-8') ,(C,H,W)
|
|||
|
|
###---服务器端:字节化image_bytes=bytes(img_data,encoding='utf-8')-->解码img_data=np.frombuffer(base64.decodebytes(image_bytes),dtype=np.uint8)-->reshape:mg_data=img_data.reshape(h,w,3)
|
|||
|
|
def test4():
|
|||
|
|
image_path='test/P0017.png'
|
|||
|
|
image_ori=cv2.imread(image_path)
|
|||
|
|
api = 'http://192.168.16.45:8000/detector'
|
|||
|
|
#img = cv2.imencode('.jpg', img_ori)[-1]
|
|||
|
|
|
|||
|
|
h,w,c = image_ori.shape
|
|||
|
|
input_ ={
|
|||
|
|
'img_data':'',
|
|||
|
|
'img_width':h,
|
|||
|
|
'img_height':w,
|
|||
|
|
'img_chs':c
|
|||
|
|
}
|
|||
|
|
print('input:',input_)
|
|||
|
|
|
|||
|
|
##decode('utf-8'),有没有好像都行。
|
|||
|
|
input_['img_data']=base64.b64encode(image_ori).decode('utf-8')
|
|||
|
|
response=requests.post(api,json=input_).json()
|
|||
|
|
print(response['msg'],response['data']['bboxes'])
|
|||
|
|
|
|||
|
|
def decode_encode():
|
|||
|
|
##对文件b64编码,b64解码存储
|
|||
|
|
image_path='test/P0017.png'
|
|||
|
|
with open(image_path,'rb') as fp:
|
|||
|
|
encode_img = base64.b64encode(fp.read())
|
|||
|
|
with open('t2.png','wb') as f2:
|
|||
|
|
f2.write(base64.b64decode(encode_img))
|
|||
|
|
|
|||
|
|
##输入时数组-->opencv编码jpg字节流-->存储图片文件
|
|||
|
|
image_path='test/P0017.png'
|
|||
|
|
image_ori=cv2.imread(image_path)
|
|||
|
|
image_bytes = cv2.imencode(".png",image_ori)[1].tobytes()
|
|||
|
|
with open('bytes2image.png') as fp:
|
|||
|
|
fp.write(image_bytes)
|
|||
|
|
|
|||
|
|
###字节流到数组用cv2.imdecode(np.frombuffer(image_bytes,np.uint8),1)
|
|||
|
|
with open(image_path,'rb') as fp:
|
|||
|
|
image_bytes2 = fp.read()
|
|||
|
|
image_array = cv2.imdecode(np.frombuffer(image_bytes2,np.uint8),1)
|
|||
|
|
|
|||
|
|
|
|||
|
|
##输入时数组-->opencv编码jpg字节流-->存储图片文件
|
|||
|
|
image_path='test/P0017.png'
|
|||
|
|
image_ori=cv2.imread(image_path)
|
|||
|
|
image_bytes = cv2.imencode(".png",image_ori)[1].tobytes()
|
|||
|
|
with open('bytes2image.png') as fp:
|
|||
|
|
fp.write(image_bytes)
|
|||
|
|
|
|||
|
|
##image_array--
|
|||
|
|
image_path='test/P0017.png'
|
|||
|
|
image_ori=cv2.imread(image_path)
|
|||
|
|
image_encode=base64.b64encode(image_ori).decode('utf-8')
|
|||
|
|
image_bytes=bytes(image_encode,encoding='utf-8')
|
|||
|
|
img_data=np.frombuffer(base64.decodebytes(image_bytes),dtype=np.uint8)
|
|||
|
|
|
|||
|
|
|
|||
|
|
def test5():
|
|||
|
|
|
|||
|
|
import json
|
|||
|
|
##输入时数组-->opencv编码jpg字节流-->存储图片文件
|
|||
|
|
image_path='imgs/DJI_0445.JPG'
|
|||
|
|
|
|||
|
|
image_dir = '/home/thsw2/WJ/data/THexit/val/images/'
|
|||
|
|
filelist = os.listdir(image_dir)
|
|||
|
|
time0 = time.time()
|
|||
|
|
for filename in filelist:
|
|||
|
|
image_path = os.path.join(image_dir,filename)
|
|||
|
|
image_ori=cv2.imread(image_path)
|
|||
|
|
|
|||
|
|
image_ori = cv2.resize(image_ori, (0, 0), fx=0.25, fy=0.25, interpolation=cv2.INTER_NEAREST)
|
|||
|
|
image_pngcode = cv2.imencode(".jpg",image_ori)[-1]
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
api = 'http://192.168.10.10:8000/detector'
|
|||
|
|
#api = 'http://47.98.157.120:9040/api/taskFile/submitUAVKHQuestion'
|
|||
|
|
#api = 'http://192.168.0.100:9040'
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
h,w,c = image_ori.shape
|
|||
|
|
input_ ={
|
|||
|
|
'imgData':'',
|
|||
|
|
#'img_width':h,
|
|||
|
|
#'img_height':w,
|
|||
|
|
#'img_chs':c,
|
|||
|
|
'imgName':filename
|
|||
|
|
}
|
|||
|
|
#print('input:',input_ )
|
|||
|
|
t1 = time.time()
|
|||
|
|
image_code = str(base64.b64encode(image_pngcode))[2:-1]
|
|||
|
|
#print( image_code)
|
|||
|
|
input_['imgData']=image_code
|
|||
|
|
t2 = time.time()
|
|||
|
|
response=requests.post(api,json=input_).json()
|
|||
|
|
t3 = time.time()
|
|||
|
|
print('bs encodetime:%.5f request time:%.5f \n'%(t2-t1,t3-t2))
|
|||
|
|
t1_bytes = bytes(image_code,encoding='utf-8')
|
|||
|
|
t2_bs64decode = base64.b64decode(t1_bytes)
|
|||
|
|
|
|||
|
|
img_data = cv2.imdecode(np.frombuffer(base64.b64decode( bytes(image_code,encoding='utf-8')),dtype=np.uint8),1)
|
|||
|
|
|
|||
|
|
|
|||
|
|
#print(response['code'],response['data']['bboxes'])
|
|||
|
|
print('Return:',response['data']['bboxes'],' img data shape:',img_data.shape)
|
|||
|
|
|
|||
|
|
time2 = time.time()
|
|||
|
|
print('average time:',(time2-time0)/len(filelist))
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
if __name__=='__main__':
|
|||
|
|
test5()
|