去除图片中仅为背景(全0,全255)的图片

2023-11-12

        在对遥感影像进行裁剪时,很多背景也会被裁剪出来作为一个图像,而背景值过多会影响网络性能。

        该代码主要去除全0图片,全255图片,仅含0和255的图片。

import os
import cv2
import numpy as np
import shutil

"""
去除值为255,即全为背景的图片
"""


def getFileList(dir, Filelist, ext=None):
    """
    获取文件夹及其子文件夹中文件列表
    输入 dir:文件夹根目录
    输入 ext: 扩展名
    返回: 文件路径列表
    """
    newDir = dir
    if os.path.isfile(dir):
        if ext is None:
            Filelist.append(dir)
        else:
            if ext in dir[-3:]:
                Filelist.append(dir)

    elif os.path.isdir(dir):
        for s in os.listdir(dir):
            newDir = os.path.join(dir, s)
            getFileList(newDir, Filelist, ext)

    return Filelist

if __name__ == '__main__':
    # 图片存放路径
    org_label_folder = r"E:\New_gj\dataset\T_multi_22\cut\labels_pre"
    org_img_folder = r"E:\New_gj\dataset\T_multi_22\cut\images_pre"

    # 检索文件
    imglist = getFileList(org_img_folder, [], 'png')
    labellist = getFileList(org_label_folder, [], 'png')
    print('本次执行检索到 ' + str(len(imglist)) + ' 张img图像')
    print('本次执行检索到 ' + str(len(labellist)) + ' 张label图像\n')

    count = 0
    # 提取出来的图片的存储路径
    root_img = r"E:\New_gj\dataset\T_multi_22\cut\images"
    root_label = r"E:\New_gj\dataset\T_multi_22\cut\labels"

    for imgpath in imglist:
        # 读取图片文件名,png/jpg前边的名称
        imgname = os.path.splitext(os.path.basename(imgpath))[0]

        # 读取图片
        img = cv2.imread(imgpath, cv2.IMREAD_UNCHANGED)
        # value值可以得到是否存在255
        values, counts = np.unique(img, return_counts=True)


        # 提取全部非NoData图片

        if values[0] != 255:

            if values[0] == 0 and values[1] == 255:
                pass
            else:
                # print(imgname)
                # print(values)
                # print(values[0])
                # print(values[1])
                # exit()
                count = count + 1
                #print("copy")
                shutil.copy(org_label_folder + '\\' + imgname + '.png', root_label + '\\' + imgname + '.png')
                shutil.copy(org_img_folder + '\\' + imgname + '.png', root_img + '\\' + imgname + '.png')


    print("共复制 " + str(count) + " 张图片")

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

去除图片中仅为背景(全0,全255)的图片 的相关文章

  • 如何在保留矩阵维度的同时序列化 numpy 数组?

    numpy array tostring似乎没有保留有关矩阵维度的信息 请参阅这个问题 https stackoverflow com q 30697769 1156707 要求用户发出调用numpy array reshape 有没有办法
  • SQLAlchemy 关系错误:对象没有属性“c”

    I used sql自动编码 https code google com p sqlautocode 生成我的模型和所有关系 我正在尝试做一个简单的查询 例如 obj session query Venue filter Venue sym
  • 如何使用 Python 和 Selenium WebDriver 获取 localStorage

    相当于什么 driver get cookies 获取 LocalStorage 而不是 ookies python API没有提供直接读 写本地存储的方法 但可以通过execute script class LocalStorage de
  • 为什么 statsmodels 和 R 的逻辑回归结果不同?

    我正在尝试比较 python 的 statsmodels 和 R 中的逻辑回归实现 Python版本 import statsmodels api as sm import pandas as pd import pylab as pl i
  • 如何选择单选按钮?

    我在用mechanize我正在尝试从单选按钮列表中选择一个按钮 该列表有 5 项 如何选择第一项 文档没有帮助我 gt gt gt br form
  • 如何将 Jupyter Notebook 的代码片段与 VSCode 结合使用?

    我已经使用 VSCode 一段时间了 目前我正在尝试设置代码片段来工作 它们似乎适用于简单的 Python py 文件 但不适用于 Jupyter Notebook ipynb 文件 有什么办法可以让他们一起工作吗 片段就在这里 Creat
  • Python 中的自然日/相对日

    我想要一种在 Python 中显示日期项目的自然时间的方法 类似于 Twitter 将显示 刚才 几分钟前 两小时前 三天前 等消息 Django 1 0 在 django contrib 中有一个 人性化 方法 我没有使用 Django
  • time.sleep - TypeError:需要一个浮点[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 time sleep 2 TypeError a float is required 我该如何解决 我不确定我应该在这里做什么 您
  • Visual Studio Code 调试控制台中的 pydevd 警告

    我已经搜索了一段时间但找不到任何相关问题 当使用 Visual Studio Code 和 Python 扩展来调试大型元素时 计算表示或获取属性可能需要一些时间 在这些情况下 会出现如下警告 pydevd 警告 计算 DataFrame
  • Python 中字典的合并层次结构

    我有两本词典 而我想做的事情有点奇怪 基本上 我想合并它们 这很简单 但它们是字典的层次结构 我想以这样的方式合并它们 如果字典中的项目本身就是字典并且存在于两者中 我也想合并这些字典 如果它不是字典 我希望第二个字典中的值覆盖第一个字典中
  • Python 2.7从非默认目录打开多个文件(对于opencv)

    我在 64 位 win7 上使用 python 2 7 并拥有 opencv 2 4 x 当我写 cv2 imread pic 时 它会在我的默认 python 路径中打开 pic 即C Users Myname 但是我如何设法浏览不同的目
  • 在 Flask 中将配置文件作为字典读取

    在 instance app cfg 我已经配置 test test 在我的烧瓶文件 app py 中 with app open instance resource app cfg as f config f read print con
  • 字典键中的通配符

    假设我有一本字典 rank dict V 1 A 2 V 3 A 4 正如您所看到的 我在一个 V 的末尾添加了一个 虽然 3 可能只是 V 的值 但我想要 V1 V2 V2234432 等的另一个密钥 我想检查它 checker V30
  • 使用 ruamel.yaml,如何使带有 NEWLINE 的变量成为不带引号的多行

    我正在生成用作协议的 YAML 其中包含一些生成的 JSON import json from ruamel import yaml jsonsample id 123 type customer account other myyamel
  • Python 请求包含有值的参数和没有值的参数

    我正在为 API 编写一个 Python 包装器 该 API 支持具有值的查询参数 例如param1如下 和查询参数do not有价值观 例如param2如下 即 https example com service param1 value
  • 如何在 django-rest-framework 查询集响应中添加注释数据?

    我正在为查询集中的每个项目生成聚合 def get queryset self from django db models import Count queryset Book objects annotate Count authors
  • Python 正则表达式中的 \B+ 与 [\B]+ 与 [^\b]+

    我在回答 SO 问题时遇到了一个我不明白的问题 我创建了一个简化的示例来说明该问题 场景 我正在测试两个标记 不是随机的英语单词 在字符串中至少相距一定距离 在这个例子中 我们有一个动物列表 我们要确保在羊和狼之间至少还有其他三种动物 否则
  • 在 Django 中使用 path() 找不到 404

    我刚刚查看 django 并尝试通过视图列出书籍id作为 URL 的参数books urls py 但出现 404 页面未找到错误 当我在浏览器中输入此网址时 我没有发现网址有什么问题 http 192 168 0 106 8000 boo
  • Pandas 数据透视表同时包含多列

    我怀疑是否pandas pivot table可以一次接受两列并单独处理它们 而不是分层处理 假设我有以下数据框 id date day val 101 11 1 1 1 2 1 101 11 1 2 2 2 2 101 11 1 3 3
  • Python 3d 金字塔

    我是 3D 绘图新手 我只想用 5 个点建造一个金字塔并通过它切出一个平面 我的问题是我不知道如何填充两侧 points np array 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 fig plt figure ax fi

随机推荐

  • CSS中苹果X全面屏的适配问题解决方法

    前言 iPhoneX 取消了物理按键 改成底部小黑条 这一改动导致网页出现了比较尴尬的屏幕适配问题 对于网页而言 顶部 刘海部位 的适配问题浏览器已经做了处理 所以我们只需要关注底部与小黑条的适配问题即可 即常见的吸底导航 返回顶部等各种相
  • 编译OpenWRT 出现error 1 set FORCE_UNSAFE_CONFIGURE=1

    补个博客 最近发现记忆不行了 很多问题重复遇见却不记得之前怎么决绝的 在编译OpenWRT时出现 you should not run configure as root set FORCE UNSAFE CONFIGURE 1 in en
  • 关于51/STC单片机中断优先级的调整

    来源 单片机简单程序 zhjysx的博客 CSDN博客https blog csdn net zhjysx category 11558658 html 目录 内容简述 理论 中断源类型 IP寄存器 LED程序 Proteus仿真图 外部中
  • Django基础入门⑭:Django表单实例【表单应用】获取全量书籍信息

    Django基础入门 Django 对象查询详解 分组聚合 Django表单实例 表单应用 编写模板层HTML页面 编写视图层逻辑代码 配置url路由模式映射 页面搜索效果展示 表单验证逻辑 获取全量书籍信息 实现添加书籍信息 个人简介 以
  • 总结numpy中的ndarray,非常齐全

    总结numpy中的ndarray 非常齐全 numpy Numerical Python 是一个开源的Python数据科学计算库 支持对N维数组和矩阵的操作 用于快速处理任意维度的数组 numpy库的功能非常聚焦 专注于做好 一件事 num
  • 1、树莓派4B设置热点,一步步细心来

    参考了 https www icode9 com content 4 683569 html https zhuanlan zhihu com p 101089893 一定要细心 1 安装 network manager sudo apt
  • gin 三.请求数据的映射

    数据解析绑定 基础解释 ShouldBindWith 请求数据映射示例 ShouldBindHeader 将请求头绑定到一个结构体或接口示例 MustBindWith 方式 基础解释 解释 例如后端获取调用方参数 通常会使用一个结构体 或一
  • 深度学习高遥感影像语义分割

    深度学习遥感影像语义分割 深度学习大家都知道 在计算机视觉领域取得了很大的成功 在遥感影像自动解译方面 同样带来了快速的发展 我在遥感影像自动解译领域 也做了一些微薄的工作 发表几篇论文 我一直关注遥感影像自动解译领域 在北京出差的这段时间
  • python--类与类之间的关系

    类和类之间的关系 在我们的世界中事物和事物之间总会有一些联系 在面向对象中 类和类之间也可以产生相关的关系 1 依赖关系 执行某个动作的时候 需要xxx来帮助你完成这个操作 此时的关系是最轻的 随时可以更换另外一个东西来完成此操作 clas
  • shell脚本:循环结束语句二

    shell脚本 循环结束语句二 二 循环结束语句 1 break 跳出循环 2 continue 3 while 4 until 条件不成立时 跳出循环 5 总结 三 操作演练 二 循环结束语句 1 break 跳出循环 1 作用 控制循环
  • 旧版OpenGL 与 新版OpenGL

    分割线 OpenGL3 0 3 0之前 所有OpenGL版本都与早期版本完全向后兼容 针对OpenGL 1 1编写的代码可以在OpenGL 2 1实现中很好地执行 3 0 引入了废弃functionality的想法 许多OpenGL函数被声
  • android高级UI之PathMeasure<一>--Path测量基础(nextContour、getPosTan、getMatrix、getSegment)

    前言 在上一次android高级UI之贝塞尔曲线 lt 下 gt 贝塞尔曲线运用 QQ消息气泡完成了对于贝塞尔曲线绘制的学习 今天准备学习UI绘制中经常会用到的跟Path相关的一些知识 也是很重要 但是你不去专门花时间去研究的话其实理解起来
  • Docker从入门到干事,看这一篇就够了,mysql索引优化面试题

    docker与虚拟机的对比 物理机 别墅 虚拟机 楼房 docker 酒店式公寓 docker三大概念 库 一个总的仓库 包含所有的镜像 使用时可以从库拉取镜像到本地 镜像 从库中拉取下来的应用 比如mysql 容器 镜像运行之后就是容器
  • transformer论文学习:Attention Is All You Need

    transformer论文学习 Attention Is All You Need 文章目录 transformer论文学习 Attention Is All You Need 整体结构速览 一 网络结构 二 注意力机制 参考资源 1 原论
  • P4学习——p4runtime

    文章目录 步骤一 运行不完整代码 步骤二 开始实现隧道转发 步骤三 运行解决方案 参考 https blog csdn net qq 33681684 article details 123646883 在这个练习中 我们将使用P4Runt
  • 实战篇-OpenSSL之AES加密算法-ECB模式

    本文属于 OpenSSL加密算法库使用系列教程 之一 欢迎查看其它文章 实战篇 OpenSSL之AES加密算法 ECB模式 一 AES简介 二 ECB模式 1 命令行操作 2 函数说明 3 编程实现 1 PKCS7填充方式 2 实现ECB模
  • 语音识别入门 --各个模型的整理

    语音识别入门 前期知识储备 结构图 语音特征提取 各个模型的尝试 ASRT DeepSpeechRecognition end2end chinese speech recognition Wenet whisper 语音纠错 TTS 文本
  • QT学习笔记6--信号之间的连接

    连接 仍然使用connect函数 但是和函数重载类似 需要用到函数指针 如下所示 void teacher teachersignals void teacher hungery void student studentslots void
  • 云计算的定义和特点

    在中国大数据专家委员会成立大会上 委员会主任怀进鹏院士用一个公式描述了大数据与云计算的关系 G f x x是大数据 f是云计算 G是我们的目标 也就是说 云计算是处理大数据的手段 大数据与云计算是一杖硬币的正反面 大数据是需求 云计算是手段
  • 去除图片中仅为背景(全0,全255)的图片

    在对遥感影像进行裁剪时 很多背景也会被裁剪出来作为一个图像 而背景值过多会影响网络性能 该代码主要去除全0图片 全255图片 仅含0和255的图片 import os import cv2 import numpy as np import