gpt4 book ai didi

python - 带有正方形坐标的照片上的透明蒙版

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:43 25 4
gpt4 key购买 nike

我需要从一个内部有正方形和坐标的图像创建一个透明蒙版。不幸的是,我没有在 openCV 中找到任何关于透明度的文献。

例如我有这张照片:

this photo

用下面的代码,正方形的坐标如下

(237, 150, 311, 150, 74) - 这是代码

def loc(photo):
img = cv2.imread(photo,cv2.IMREAD_COLOR)
red = rgb2redChan(img)

#read HAAR ade loop for find eye(s)
try:
eyes = eye_cascade.detectMultiScale(red)
best_ex=eyes[0][0]
best_ey=eyes[0][1]
best_ew=eyes[0][2]
best_eh=eyes[0][3]
for (ex,ey,ew,eh) in eyes:
if(best_eh<eh):
best_ex=ex
best_ey=ey
best_ew=ew
best_eh=eh
print(ex,ey,ex+ew,ey,eh)
cv2.rectangle(img,(best_ex,best_ey),(best_ex+best_ew,best_ey+best_eh),(255,255,255),2)

img = createMask(img,best_ex,best_ey,best_ew,best_eh)
except:
print("Not localized")

#show eye(s) rectangle in color image
cv2.imshow('red',img)
#press any key to close
cv2.waitKey(0)
cv2.destroyAllWindows()
return img,photo.split("/")[-1]

def createMask(img,x,y,w,h):
mask = np.zeros(img.shape,np.uint8)
mask[y:y+h,x:x+w] = img[y:y+h,x:x+w]
return mask

我认为问题与创建

有关
mask = np.zeros(img.shape,np.uint8)

矩阵的所有值都是[0,0,0],如何将它们变成透明值?

附言照片的起始扩展名是.jpg

最佳答案

你就快完成了,现在使用 addWeighted

def createMask(img,x,y,w,h, alpha=0.5):
'''
update alpha to the darkness you want
'''
mask = np.zeros(img.shape,np.uint8)
mask[y:y+h,x:x+w] = img[y:y+h,x:x+w]

beta = 1 - alpha
mask = cv2.addWeighted(img, alpha, mask, beta, 0)
return mask

例子:

enter image description here

关于python - 带有正方形坐标的照片上的透明蒙版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56891173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com