|
- 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()
|