【发布时间】:2020-12-05 20:02:04
【问题描述】:
我一直在尝试从徽标中删除背景并将其用作产品图像上的水印。我尝试使用蒙版从徽标中删除背景,但它也从徽标中删除了黑色字体。我需要在不更改徽标的情况下删除背景的帮助。图片附在下面。输出图像是我使用此代码作为输出获得的图像。 标志图片:https://drive.google.com/file/d/1yMG6cDuPt8q3EqOJ4Amzp_czWq5hrGS5/view?usp=sharing 产品图片:https://drive.google.com/file/d/13SmkTgBtWD3yIJq-qGI0aZJ-hjaLbyuB/view?usp=sharing 输出图片:https://drive.google.com/file/d/1k-fQ9tPUEJKQXPdmdB2ajtliAAG4irNs/view?usp=sharing
这是我的代码
import cv2
import numpy as np
img = cv2.imread('images/1L2Z3A443AAMC.jpg')
logo = cv2.imread('water2.png')
logo = cv2.resize(logo,(int(img.shape[0]/1.2),int(img.shape[1]/2)))
logo_gray = cv2.cvtColor(logo,cv2.COLOR_BGR2GRAY)
ret,mask= cv2.threshold(logo_gray,245,255,cv2.THRESH_BINARY)
mask_inv = cv2.bitwise_not(mask)
logo_final = cv2.bitwise_and(logo,logo, mask=mask_inv)
h_img,w_img,_ = img.shape
h_logo,w_logo,_ = logo.shape
center_y = int(h_img/2)
center_x = int(w_img/2)
top_y = center_y - (int(h_logo/2))
left_x = center_x - (int(w_logo/2))
bottom_y = top_y + h_logo
right_x = left_x + w_logo
roi = img[top_y:bottom_y,left_x:right_x]
result = cv2.addWeighted(roi,1,logo_final,1,0)
img[top_y:bottom_y,left_x:right_x] = result
cv2.imwrite('sample.jpg',img)
【问题讨论】:
-
问题是什么?请edit您的帖子明确说明您的要求。
-
@CrisLuengo 好的
-
当您将徽标中的黑色文本放在背景图像中的近黑色上时,黑色文本将不会显示。你希望它做什么?
-
@fmw42 此标志由客户提供。
-
把标志变小,放在白色区域的一个角落里。
标签: python python-3.x image-processing opencv-python