Reapply "feat(新功能): fix(修复bug): print 于 sketch拉伸导致的print比例不正确问题 docs(文档变更): refactor(重构): test(增加测试):"

This reverts commit 0fe0ca4183.
This commit is contained in:
zhouchengrong
2025-02-07 16:02:15 +08:00
parent 0f18a6aa62
commit 78c6da3c7b
2 changed files with 40 additions and 8 deletions

View File

@@ -1,9 +1,6 @@
import io
import logging
import cv2
import numpy as np
from PIL import Image
from app.service.utils.new_oss_client import oss_get_image
@@ -38,6 +35,18 @@ class LoadImage:
def __call__(self, result):
result['image'], result['pre_mask'] = self.read_image(result['path'])
# 判断是否resize sketch 保留ori image 用于模型输入
result['ori_image'] = result['image']
if result['resize_scale'][0] != 0 and result['resize_scale'][1] != 0:
height, width = result['image'].shape[:2]
# 计算新的宽度和高度
new_width = int(width * result['resize_scale'][0])
new_height = int(height * result['resize_scale'][1])
# 使用cv2.resize()函数进行缩放
result['image'] = cv2.resize(result['image'], (new_width, new_height))
if result['pre_mask'] is not None:
result['pre_mask'] = cv2.resize(result['pre_mask'], (new_width, new_height))
result['gray'] = cv2.cvtColor(result['image'], cv2.COLOR_BGR2GRAY)
result['keypoint'] = self.get_keypoint(result['name'])
result['img_shape'] = result['image'].shape

View File

@@ -36,12 +36,27 @@ class Segmentation:
# preview 过模型 不缓存
if "preview_submit" in result.keys() and result['preview_submit'] == "preview":
# 推理获得seg 结果
seg_result = get_seg_result(result["image_id"], result['image'])
seg_result = get_seg_result(result["image_id"], result['ori_image'])
if result['resize_scale'][0] != 0 and result['resize_scale'][1] != 0:
height, width = seg_result.shape[:2]
# 计算新的宽度和高度
new_width = int(width * result['resize_scale'][0])
new_height = int(height * result['resize_scale'][1])
# 使用cv2.resize()函数进行缩放
seg_result = cv2.resize(seg_result, (new_width, new_height))
# submit 过模型 缓存
elif "preview_submit" in result.keys() and result['preview_submit'] == "submit":
# 推理获得seg 结果
seg_result = get_seg_result(result["image_id"], result['image'])
self.save_seg_result(seg_result, result['image_id'])
seg_result = get_seg_result(result["image_id"], result['ori_image'])
seg_result_save = seg_result
if result['resize_scale'][0] != 0 and result['resize_scale'][1] != 0:
height, width = seg_result.shape[:2]
# 计算新的宽度和高度
new_width = int(width * result['resize_scale'][0])
new_height = int(height * result['resize_scale'][1])
# 使用cv2.resize()函数进行缩放
seg_result = cv2.resize(seg_result, (new_width, new_height))
self.save_seg_result(seg_result_save, result['image_id'])
# null 正常流程 加载本地缓存 无缓存则过模型
else:
# 本地查询seg 缓存是否存在
@@ -49,8 +64,16 @@ class Segmentation:
# 判断缓存和实际图片size是否相同
if not _ or result["image"].shape[:2] != seg_result.shape:
# 推理获得seg 结果
seg_result = get_seg_result(result["image_id"], result['image'])
self.save_seg_result(seg_result, result['image_id'])
seg_result = get_seg_result(result["image_id"], result['ori_image'])
seg_result_save = seg_result
if result['resize_scale'][0] != 0 and result['resize_scale'][1] != 0:
height, width = seg_result.shape[:2]
# 计算新的宽度和高度
new_width = int(width * result['resize_scale'][0])
new_height = int(height * result['resize_scale'][1])
# 使用cv2.resize()函数进行缩放
seg_result = cv2.resize(seg_result, (new_width, new_height))
self.save_seg_result(seg_result_save, result['image_id'])
result['seg_result'] = seg_result
# 处理前片后片