leon 3 weken geleden
bovenliggende
commit
ee8ef4fcb0
1 gewijzigde bestanden met toevoegingen van 44 en 43 verwijderingen
  1. 44 43
      test.py

+ 44 - 43
test.py

@@ -8,7 +8,7 @@ from stream import StreamCapture
 from infer import DoorInference
 from logger import logger
 
-async def upload_image(session, url, payload, filename1, content1, filename2, content2):
+async def upload_image(url, payload, filename1, content1, filename2, content2):
     try:
         form_data = aiohttp.FormData()
         # 添加普通表单数据
@@ -20,9 +20,10 @@ async def upload_image(session, url, payload, filename1, content1, filename2, co
         form_data.add_field('oldFile', content2, filename=filename2, content_type='image/jpeg')
         
         # 发起 POST 请求
-        async with session.post(url, data=form_data) as response:
-            result = await response.text()
-            logger.info(result)
+        async with aiohttp.ClientSession() as session:
+            async with session.post(url, data=form_data) as response:
+                result = await response.text()
+                logger.info(result)
     except Exception as error:
         logger.error(f'Error: {str(error)}')
 
@@ -38,47 +39,47 @@ async def process_stream():
     stream = StreamCapture(ip, channel)
     
     posttime = time.time() - 30
-    async with aiohttp.ClientSession() as session:
-        frame = cv2.imread("inference/test.jpg")
+    
+    frame = cv2.imread("inference/test.jpg")
 
-        image = frame.copy()
+    image = frame.copy()
+        
+    result = instance(image)
+    if len(result) > 0 and time.time() - posttime > 30:
+        try:
+            posttime = time.time()
+            videoTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
+            fileTime = time.strftime('%Y-%m-%d-%H:%M:%S', time.localtime())
+            filename = fileTime + ".jpg"
+            filenameori = fileTime + "det.jpg"
+            logger.info(videoTime)
+            logger.info(result)
             
-        result = instance(image)
-        if len(result) > 0 and time.time() - posttime > 30:
-            try:
-                posttime = time.time()
-                videoTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
-                fileTime = time.strftime('%Y-%m-%d-%H:%M:%S', time.localtime())
-                filename = fileTime + ".jpg"
-                filenameori = fileTime + "det.jpg"
-                logger.info(videoTime)
-                logger.info(result)
-                
-                for res in result:
-                    cv2.rectangle(image, tuple(map(int, (res.left, res.top))), 
-                                    tuple(map(int, (res.right, res.bottom))), (255, 0, 0), 4)
-                
-                success, encoded_image = cv2.imencode('.jpg', image)
-                if not success:
-                    logger.error('imencode image error')
-                content = encoded_image.tobytes()
-                successori, encoded_imageori = cv2.imencode('.jpg', frame)
-                if not successori:
-                    logger.error('imencode original image error')
-                contentori = encoded_imageori.tobytes()
-                
-                payload = {
-                    'channel': '45',
-                    'classIndex': '8',
-                    'ip': '172.19.152.231',
-                    'videoTime': videoTime,
-                    'videoUrl': stream.stream_url
-                }
-                
-                # 使用协程上传图像
-                await upload_image(session, 'http://172.19.152.231/open/api/operate/upload', payload, filename, content, filenameori, contentori)
-            except Exception as error:
-                logger.error(f'Error: {str(error)}')
+            for res in result:
+                cv2.rectangle(image, tuple(map(int, (res.left, res.top))), 
+                                tuple(map(int, (res.right, res.bottom))), (255, 0, 0), 4)
+            
+            success, encoded_image = cv2.imencode('.jpg', image)
+            if not success:
+                logger.error('imencode image error')
+            content = encoded_image.tobytes()
+            successori, encoded_imageori = cv2.imencode('.jpg', frame)
+            if not successori:
+                logger.error('imencode original image error')
+            contentori = encoded_imageori.tobytes()
+            
+            payload = {
+                'channel': '45',
+                'classIndex': '8',
+                'ip': '172.19.152.231',
+                'videoTime': videoTime,
+                'videoUrl': stream.stream_url
+            }
+            
+            # 使用协程上传图像
+            await upload_image('http://172.19.152.231/open/api/operate/upload', payload, filename, content, filenameori, contentori)
+        except Exception as error:
+            logger.error(f'Error: {str(error)}')
 
     logger.info("======= EXIT =======")