Merge remote-tracking branch 'origin/develop' into develop
# Conflicts: # app/service/design_fast/pipeline/split.py # app/service/utils/new_oss_client.py
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -460,8 +460,11 @@ class PrintPainting:
|
||||
angle: 旋转的角度
|
||||
crop: 是否需要进行裁剪,布尔向量
|
||||
"""
|
||||
if not isinstance(crop, bool):
|
||||
raise ValueError("The 'crop' parameter must be a boolean.")
|
||||
|
||||
crop_image = lambda img, x0, y0, w, h: img[y0:y0 + h, x0:x0 + w]
|
||||
w, h = img.shape[:2]
|
||||
h, w = img.shape[:2]
|
||||
# 旋转角度的周期是360°
|
||||
angle %= 360
|
||||
# 计算仿射变换矩阵
|
||||
@@ -473,7 +476,7 @@ class PrintPainting:
|
||||
if crop:
|
||||
# 裁剪角度的等效周期是180°
|
||||
angle_crop = angle % 180
|
||||
if angle > 90:
|
||||
if angle_crop > 90:
|
||||
angle_crop = 180 - angle_crop
|
||||
# 转化角度为弧度
|
||||
theta = angle_crop * np.pi / 180
|
||||
|
||||
@@ -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
|
||||
|
||||
# 处理前片后片
|
||||
|
||||
Reference in New Issue
Block a user