feat(新功能):
fix(修复bug): design 选区颜色调整 docs(文档变更): refactor(重构): test(增加测试):
This commit is contained in:
@@ -29,6 +29,24 @@ class Color:
|
||||
else:
|
||||
pattern = self.get_pattern(result['color'])
|
||||
resize_pattern = cv2.resize(pattern, (dim_image_w, dim_image_h), interpolation=cv2.INTER_AREA)
|
||||
|
||||
if "partial_color" in result.keys() and result['partial_color'] != "":
|
||||
bucket_name = result['partial_color'].split('/')[0]
|
||||
object_name = result['partial_color'][result['partial_color'].find('/') + 1:]
|
||||
partial_color = oss_get_image(oss_client=self.minio_client, bucket=bucket_name, object_name=object_name, data_type="cv2")
|
||||
h, w = partial_color.shape[0:2]
|
||||
resize_pattern = cv2.resize(resize_pattern, (w, h), interpolation=cv2.INTER_AREA)
|
||||
# 分离出 png 图的 alpha 通道
|
||||
alpha_channel = partial_color[:, :, 3]
|
||||
# 提取 png 图的 RGB 通道
|
||||
png_rgb = partial_color[:, :, :3]
|
||||
# 创建一个与 cv 图大小相同的掩码,用于指示哪些像素需要替换
|
||||
mask = alpha_channel > 0
|
||||
# 将掩码扩展为 3 通道,以便与 cv 图进行逐元素操作
|
||||
mask_3ch = np.stack([mask] * 3, axis=-1)
|
||||
# 根据掩码将 png 图的颜色覆盖到 cv 图上
|
||||
resize_pattern[mask_3ch] = png_rgb[mask_3ch]
|
||||
resize_pattern = cv2.resize(resize_pattern, (dim_image_w, dim_image_h), interpolation=cv2.INTER_AREA)
|
||||
closed_mo = np.expand_dims(result['mask'], axis=2).repeat(3, axis=2)
|
||||
gray_mo = np.expand_dims(result['gray'], axis=2).repeat(3, axis=2)
|
||||
get_image_fir = resize_pattern * (closed_mo / 255) * (gray_mo / 255)
|
||||
|
||||
Reference in New Issue
Block a user