python - 如何将图像蒙版叠加到原始图像上但仅显示蒙版边界框?

标签 python opencv image-processing overlay mask

我有一个包含数百张图像的文件夹和另一个带有相应掩码的文件夹。图像和蒙版的名称都相同,例如image1.png 的掩码也被命名为“image1.png”。所有图像都是灰度的。
enter image description here
我需要在循环中将蒙版叠加到原始图像上,但只显示蒙版边界框,同时使蒙版的内表面完全透明以显示原始图像区域,如上所示。当前代码读取包含图像和蒙版的文件夹,但我需要按要求提供覆盖方面的帮助。

import pandas as pd
import cv2
import numpy as np
import glob
import os
images = glob.glob("images\*.png")
masks = glob.glob("masks\*.png")
images.sort()
masks.sort()
for f1,f2 in zip(images,masks):
    img1 = cv2.imread(f1)
    img2 = cv2.imread(f2)
    img_1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
    img_2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
    img_name = f2.split(os.sep)[-1]
    contours, _ = cv2.findContours(img_2, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    combined = cv2.drawContours(img_1, contours, -1, (0,255,0),1)
    cv2.imwrite("combined/{}.png".format(img_name[:-4]),combined) 

最佳答案

我发现了这个问题。我需要在 for 循环中使用 Zip。我已相应地更正了代码。

关于python - 如何将图像蒙版叠加到原始图像上但仅显示蒙版边界框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64306336/

相关文章:

python - 从张量列表创建参差不齐的张量

python - 0o777 作为 mkdir 模式值的含义是什么?

opencv - 如何使用对极平面图像确定物体与相机的距离?

c++ - OpenCV 中文档的模式提取层

matlab - 两条相交线之间的像素

image-processing - CUDA 纹理缓存似乎有错误的数据?

c - 如何检测图像中的文本区域?

Python类方法,什么时候返回self?

python - Django override_settings 不适用于运行多个测试

python - 轮廓中点之间的距离opencv