你好,我正在使用OpenCV从一张图片中提取白色文本并粘贴到另一张图片上.我正在使用下面的方法为黑色图像背景,它工作得很好.判断以下代码

import cv2
import numpy as np
image_msg = (30, 209, 187, 31)

base_path="/Users/images/"
mask_image1 = "{}show_image_2.PNG".format(base_path)

image_1_title = "{}show_image_2_logo.PNG".format(base_path)

img = cv2.imread(mask_image1)


image_1_title_img = cv2.imread(image_1_title)
image_1_titl_img = cv2.cvtColor(image_1_title_img, cv2.COLOR_BGR2RGB)
im1r_title = cv2.resize(image_1_titl_img, (image_msg[2], image_msg[3]))

print(im1r_title.shape)
plt.imshow(im1r_title,cmap='gray')
plt.axis('off')
plt.show()
print(img.shape)
plt.imshow(img,cmap='gray')
plt.axis('off')
plt.show()

img[image_msg[1]: image_msg[1] + image_msg[3], 
      image_msg[0]: image_msg[0] + image_msg[2],
     ] = np.where(im1r_title < [100, 100, 100], img[image_msg[1]: image_msg[1] + image_msg[3], 
     image_msg[0]: image_msg[0] + image_msg[2],
     ], im1r_title)

plt.imshow(img,cmap='gray')
plt.axis('off')
plt.show()

enter image description here enter image description here

结果:

enter image description here

然而,我正在努力从下面找到一种方法来获得白色的文本,如果你打开这个图像,你会看到白色的文本,我如何提取并粘贴到另一张图像上?

带有文本的有问题的图像:

enter image description here

推荐答案

这是因为所有信息实际上都在Alpha/透明通道中,它显示了白色应该显示在哪里,黑色背景应该显示在哪里.

如果我将您的图像分为R、G、B和A四个通道,并将它们并排放置,您将看到信息在右侧的A通道中:

enter image description here

我人为地添加了一个红色边框,这样你就可以在StackOverflow令人讨厌的白色背景上看到它的全部范围.

您需要使用以下命令打开它:

im = cv.imread(..., cv.IMREAD_UNCHANGED)[..., 3]

Python相关问答推荐

将C struct 的指针传递给Python中的ioctel

回归回溯-2D数组中的单词搜索

如何判断LazyFrame是否为空?

Django注释:将时差转换为小数或小数

Tkinter滑动条标签.我不确定如何删除滑动块标签或更改其文本

Pandas 第二小值有条件

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

比较2 PD.数组的令人惊讶的结果

追溯(最近最后一次调用):文件C:\Users\Diplom/PycharmProject\Yolo01\Roboflow-4.py,第4行,在模块导入roboflow中

从numpy数组和参数创建收件箱

图像 pyramid .难以创建所需的合成图像

Telethon加入私有频道

无法使用requests或Selenium抓取一个href链接

ThreadPoolExecutor和单个线程的超时

如何在TensorFlow中分类多个类

在Python中从嵌套的for循环中获取插值

通过追加列表以极向聚合

在二维NumPy数组中,如何 Select 内部数组的第一个和第二个元素?这可以通过索引来实现吗?

处理Gekko的非最优解

如何过滤组s最大和最小行使用`transform`'