Техника, используемая в принятом ответе, работает только для однострочного текста ( demo ), но не для многострочного текста ( demo ) - как отмечено там.
Если кому-то нужно вертикально центрировать многострочный текст на изображение, вот несколько способов (методы 1 и 2, вдохновленные этой статьей CSS-Tricks )
CSS:
div {
display: table;
}
span {
vertical-align: middle;
display: table-cell;
}
CSS:
div {
height: 200px; /* height of image */
}
div:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em; /* Adjusts for spacing */
}
img {
position: absolute;
}
span {
display: inline-block;
vertical-align: middle;
margin-left: 200px; /* width of image */
}
CSS (вышеупомянутая скрипта содержит префиксы поставщика):
div {
display: flex;
align-items: center;
}
img {
min-width: 200px; /* width of image */
}
Формат маски странный для чтения OpenCv в моей системе (используя opencv 3.4.2). Я смог прочитать его с помощью cv2.IMREAD_UNCHANGED, но он показывает, что в вашей маске 4 канала (я ожидал только один канал). Приведенный ниже код дает противоположное или то, что вы ожидаете:
img = cv2.imread(r"C:\Users\...\Desktop\\W1kle.jpg")
mask = cv2.imread(r"C:\Users\...\Desktop\LZdyB.png",cv2.IMREAD_UNCHANGED)
mask = mask[:,:,3]
res = cv2.bitwise_and(img,img,mask=mask)
cv2.imshow("image",res)
cv2.waitKey(0)
Надеюсь, это поможет вам :)