feat: 新增design模式 merge,前端CV python 合成
This commit is contained in:
@@ -35,15 +35,9 @@ class LoadImage:
|
||||
return cls.name
|
||||
|
||||
def __call__(self, result):
|
||||
if result.get("merge_image_path"):
|
||||
result['merge_image'], _ = self.read_image(result['merge_image_path'])
|
||||
result['image'], result['pre_mask'] = self.read_image(result['path'])
|
||||
# if 'extract_lines' in result.keys():
|
||||
# if result['extract_lines']:
|
||||
# result['gray'] = self.get_lines(cv2.cvtColor(result['image'], cv2.COLOR_BGR2GRAY), result['path'])
|
||||
# else:
|
||||
# result['gray'] = cv2.cvtColor(result['image'], cv2.COLOR_BGR2GRAY)
|
||||
# else:
|
||||
# result['gray'] = cv2.cvtColor(result['image'], cv2.COLOR_BGR2GRAY)
|
||||
|
||||
result['gray'] = self.get_lines(cv2.cvtColor(result['image'], cv2.COLOR_BGR2GRAY))
|
||||
result['keypoint'] = self.get_keypoint(result['name'])
|
||||
result['img_shape'] = result['image'].shape
|
||||
@@ -61,21 +55,6 @@ class LoadImage:
|
||||
mask = skeleton
|
||||
result = np.ones_like(img) * 255
|
||||
result[mask] = img[mask]
|
||||
|
||||
# 步骤2:细化边缘(可选,让线条更干净)
|
||||
# kernel = np.ones((1, 1), np.uint8)
|
||||
# clean = cv2.morphologyEx(binary, cv2.MORPH_OPEN, kernel)
|
||||
|
||||
# thinned = cv2.ximgproc.thinning(binary, thinningType=cv2.ximgproc.THINNING_ZHANGSUEN) # thinning算法细化线条
|
||||
# mask = thinned > 0
|
||||
# result = np.ones_like(img) * 255
|
||||
# result[mask] = img[mask]
|
||||
|
||||
# 步骤3:反转回 白底黑线
|
||||
# lines = cv2.bitwise_not(thinned)
|
||||
# cv2.imwrite(os.path.join('/home/user/PycharmProjects/trinity_client_aida/test/lines_original_result_5', f"Original_{path.replace('/', '-')}.png"), img)
|
||||
# cv2.imwrite(os.path.join('/home/user/PycharmProjects/trinity_client_aida/test/lines_original_result_5', f"Line_{path.replace('/', '-')}.png"), result)
|
||||
|
||||
return result
|
||||
|
||||
def read_image(self, image_path):
|
||||
@@ -96,19 +75,19 @@ class LoadImage:
|
||||
|
||||
@staticmethod
|
||||
def get_keypoint(name):
|
||||
if name == 'blouse' or name == 'outwear' or name == 'dress' or name == 'tops':
|
||||
if name in ['blouse', 'outwear', 'dress', 'tops', 'blouse_merge', 'outwear_merge', 'dress_merge', 'tops_merge']:
|
||||
keypoint = 'shoulder'
|
||||
elif name == 'trousers' or name == 'skirt' or name == 'bottoms':
|
||||
elif name in ['trousers', 'skirt', 'bottoms', 'trousers_merge', 'skirt_merge', 'bottoms_merge']:
|
||||
keypoint = 'waistband'
|
||||
elif name == 'bag':
|
||||
elif name in ['bag', 'bag_merge']:
|
||||
keypoint = 'hand_point'
|
||||
elif name == 'shoes':
|
||||
elif name in ['shoes', 'shoes_merge']:
|
||||
keypoint = 'toe'
|
||||
elif name == 'hairstyle':
|
||||
elif name in ['hairstyle', 'hairstyle_merge']:
|
||||
keypoint = 'head_point'
|
||||
elif name == 'earring':
|
||||
elif name in ['earring', 'earring_merge']:
|
||||
keypoint = 'ear_point'
|
||||
elif name == 'others':
|
||||
elif name in ['others', 'others_merge']:
|
||||
keypoint = "others"
|
||||
else:
|
||||
raise KeyError(f"{name} does not belong to item category list: blouse, outwear, dress, trousers, skirt, "
|
||||
|
||||
Reference in New Issue
Block a user