opencv 裁剪超大 tif 图像制作深度学习数据集

news2024/11/17 6:43:44

文章目录

  • 1. 尝试暴力裁剪(24 位)
  • 2. 带透明度读取 (32 位)
  • 3. 裁剪标签(8 位)

本文只是进行了简单的尝试,未单独处理最右侧、最下侧和右下角区域,且未设置重叠率
若使用 gdal 进行 tif 图像裁剪,可以参考 这里,其作者也是做遥感图像处理的,可关注他的其它文章

1. 尝试暴力裁剪(24 位)

def CropTif(src, dest, upperleft, lowerright, size):
    """
    本函数没有单独处理下方和右侧边缘区域,且由于用于水体提取,未涉及重叠裁剪
    :param src: 源图像地址
    :param dest: 目标文件夹地址
    :param upperleft: 要裁剪区域的左上角坐标
    :param lowerright: 要裁剪区域的右下角坐标
    :param size: 每次裁剪的大小
    """
    img = cv2.imread(src)
    hmin, wmin = upperleft
    hmax, wmax = lowerright
    filenumber = 1
    h = hmin
    while h <= hmax:
        w = wmin
        while w <= wmax:
            if h + size <= hmax and w + size <= wmax:
                cv2.imwrite(dest + f"/{filenumber}.tif", img[h:h+size, w:w+size])
                filenumber = filenumber + 1
            w = w + size
        h = h + size

我们的原图是 32 (RGBA) 位的图像,直接使用 cv2.imread(src) 方式进行图像读取会忽略 A (图像透明度),即出现下面的效果
在这里插入图片描述在这里插入图片描述

2. 带透明度读取 (32 位)

img = cv2.imread(src, -1)

在这里插入图片描述

3. 裁剪标签(8 位)

img = cv2.imread(src, 0)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544019.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【1】Numpy基础

1 N维数组对象&#xff08;ndarray&#xff09; 先理解如何通过numpy进行批次计算&#xff1a; 引入numpy&#xff0c;随机生成数组&#xff1a; import numpy as npdatanp.random.randn(2,3) print(data) print(data*10) print(datadata)[[ 0.88001557 -0.70682337 0.81193…

Linux网络编程——基于UDP协议的简易聊天室

0.关注博主有更多知识 操作系统入门知识合集 目录 1.UDP服务端 1.1消息转发的实现 2.UDP客户端 3.效果展示 1.UDP服务端 使用C、C混编的方式在Linux环境下实现一个简单的UDP服务端。那么我们先看代码&#xff0c;然后逐步分析&#xff1a; // udpServer.hpp #pragma o…

sql 性能优化基于explain调优(二)

文章目录 Explain问题描述解决方案 Explain 关于Explain具体怎么用以及有哪些优点&#xff0c;我就不过多的跟大家去讲解了&#xff0c;从我最初的文章: explain是什么&#xff1f;explain优缺点及如何使用explain优化SQL&#xff0c;大家可以点击这个链接看一下&#xff0c;对…

Midjourney基础教程

本教程收集于:AIGC从入门到精通教程 Midjourney基础教程 目录 新手快速入门知识汇总:

Facebook 广告效果越来越差,怎么办?

在如今的数字营销领域中&#xff0c;Facebook作为独立站卖家首选的推广引流平台&#xff0c;具备了许多优势。 一方面&#xff0c;Facebook拥有庞大的用户数量&#xff0c;是全球最大的社交媒体平台之一。另一方面&#xff0c;Facebook的广告算法可以将广告推送给更加精准的受…

创建.Net MAUI工程

下载Visual Studio或Visual Studio for Mac或Rider&#xff08;收费&#xff09; Visual Studio for Mac 2022Visual StudioRider 工具推荐 如果使用的是Windows电脑&#xff0c;建议使用Visual Studio 2022并安装ReSharper插件。如果使用的是Mac电脑&#xff0c;建议使用Ri…

【教程】用GraphSAGE和UnsupervisedSampler进行节点表示学习

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 目录 无监督的GraphSAGE 加载 CORA 网络数据 按需采样的无监督GraphSAGE 无监督取样器&#xff08;UnsupervisedSampler&#xff09; 提取节点嵌入 节点嵌入的可视化 下游任务 数据拆分 分类器训练 无监…

8.1.0版本ELK搭建,不开启xpack认证机制

8.1.0版本ELK搭建&#xff0c;不开启xpack认证机制 部署环境安排下载安装包服务器环境配置部署elasticsearch部署kibana部署logstash部署httpd&#xff0c;filebeat配置kibana页面 部署环境安排 ip部署服务192.168.0.121kibana,elasticsearch192.168.0.83elasticsearch,logsta…

Spring boot 注解@Async不生效 无效 不起作用

今天在做公司项目时&#xff0c;有一个发邮件的需求。所以写了一个发送邮件的方法后来发现发邮件很慢&#xff0c;导致接口响应也很慢。于是我便想到要使用异步调用去处理这个方法。于是我把注解Async 加到了自己service类下的一个发邮件的一个方法&#xff0c;后来发现并没有生…

Push rejected,用Git修改已提交的注释

问题&#xff1a;有时候因注释与git规定的模板不匹配&#xff0c;会导致远程提交被拒绝 Push rejected 解决&#xff1a;修改不符合规范的注释再push即可 1、打开命令窗口 在项目根目录下右键点击出 Git批处理命令窗口。 2、查看已提交的commit 运行命令&#xff1a;git reba…

dataease源码阅读

源码&#xff1a;https://gitee.com/fit2cloud-feizhiyun/DataEase.git 文件夹目录 1.仪表盘主路由&#xff1a;frontend/src/views/panel |-- penel |-- index.vue |-- panel.js |-- appTemplate | |-- AppTemplateContent.vue | |-- index.vue | |-- component | |-- AppT…

华为OD机试真题 Java 实现【机器人活动区域】【2023Q1 200分】

一、题目描述 现有一个机器人&#xff0c;可放置于 M N的网格中任意位置&#xff0c;每个网格包含一个非负整数编号。当相邻网格的数字编号差值的绝对值小于等于 1 时&#xff0c;机器人可在网格间移动 问题&#xff1a;求机器人可活动的最大范围对应的网格点数目。 说明&a…

ESP32-C2开发板Homekit例程

准备 1.1硬件ESP32 C2开发板&#xff0c;如图1-1所示 图1-1 ESP32 C2开发板 1.2软件 CozyLife APP可以在各大应用市场搜索下载&#xff0c;也可以扫描二维码下载如图1-2所示 HomeKit flash download tool 烧录工具 esp32c2 homkit演示固件 烧录教程 打开flash_download_to…

每日一题161——对角线遍历

给你一个大小为 m x n 的矩阵 mat &#xff0c;请以对角线遍历的顺序&#xff0c;用一个数组返回这个矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;mat [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,4,7,5,3,6,8,9] 示例 2&#xff1a; 输入&#xff1a;mat …

【大数据学习篇8】 热门品类Top10分析

在HBase命令行工具中执行“list”命令&#xff0c;查看HBase数据库中的所有数据表。学习目标/Target 掌握热门品类Top10分析实现思路 掌握如何创建Spark连接并读取数据集 掌握利用Spark获取业务数据 掌握利用Spark统计品类的行为类型 掌握利用Spark过滤品类的行为类型 掌握利用…

【嵌入式烧录刷写文件】-1.4-移动Motorola S-record(S19/SREC/mot/SX)中指定地址范围内的数据

案例背景&#xff08;共5页精讲&#xff09;&#xff1a; 有如下一段S19文件&#xff0c;将源地址范围0x9100-0x9104中数据&#xff0c;移动至一个“空的&#xff0c;未填充的”目标地址范围0xA000-0xA004。 S0110000486578766965772056312E30352EA6 S123910058595A5B5C5D5E5…

调用返回风格

主程序子程序 面向过程 单线程控制&#xff0c;把问题划分为若干个处理步骤&#xff0c;构件即为主程序和子程序&#xff0c;子程序通常可合成为模块。过程调用作为交互机制&#xff0c;即充当连接件的角色。调用关系具有层次性&#xff0c;其语义逻辑表现为主程序的正确性取…

nodejs微信小程序 vue+uniapp停车场车位管理系统sringboot+python

使用微信小程序进行应用开发&#xff0c;使用My SQL软件搭建数据库&#xff0c;管理后台数据并使用Java语言进行程序设计&#xff0c;借鉴国内现有的停车场管理系统&#xff0c;在他们的基础上进行增减和创新&#xff0c;使用Photoshop完成升降式停车场管理系统的界面部件设计&…

Python学习30:存款买房(C)

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ 你刚刚大学毕业&#xff0c;…

龙蜥开发者说:构建软件包?不,是构建开源每一个角落!| 第 20 期

「龙蜥开发者说」第 20 期来了&#xff01;开发者与开源社区相辅相成&#xff0c;相互成就&#xff0c;这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的&#xff0c;我们希望在这里让更多人看见技术的力量。本期故事&#xff0c;我们邀请了龙蜥社区开发者任博…