图像分块及拼接(二)python代码

news2024/11/20 10:39:58

图像分块及拼接

  • 问题
  • python 代码
  • 效果图

问题

图像分块及拼接代码中对图像分块不均匀,本文给出的代码,图像分块大小相同。改进方法:图像分块不均匀时,填充事情shape相同

python 代码

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt


def get_patch(img,patch_size):
    imgs = []
    shape_list = []
    h, w, n = img.shape
    new_h, new_w = patch_size, patch_size
    col = int(w / patch_size) + 1
    row = int(h / patch_size) + 1
    patch_n = col * row
    top = 0
    for r in range(row):
        insert_zeros_row = np.empty((0, 0, 3))
        foot = top + new_h
        if foot > h:
            foot_gap = foot - h
            foot = h
            insert_zeros_row = np.zeros((foot_gap, new_w,3))
        left = 0
        for c in range(col):
            insert_zeros_col = np.empty((0, 0, 3))
            right = left + new_w
            if right > w:
                right_gap = right - w
                right = w
                if r==row-1:
                    insert_zeros_col = np.zeros((new_h-foot_gap, right_gap, 3))
                else:
                    insert_zeros_col = np.zeros((new_h, right_gap, 3))

            img_patch = img[top:foot, left:right]
            shape_list.append(img_patch.shape)
            if insert_zeros_col.shape[0] > 0:
                img_patch = np.hstack((img_patch, insert_zeros_col))
                insert_zeros_col = np.empty((0, 0, 3))
            if insert_zeros_row.shape[0] > 0:
                img_patch = np.vstack((img_patch, insert_zeros_row))
            left = left + new_w
            imgs.append(img_patch)
        top = top + new_h
    return imgs,shape_list, row, col
def jointImage(imgs,shape_list,h_n,w_n,):
    for h in range(h_n):
        # 按行拼接
        for w in range(w_n):
            # 按列拼接img
            if w==0:
               imgs_c=np.array(imgs[h*w_n+w][:shape_list[h*w_n+w][0],:shape_list[h*w_n+w][1]])
            else:
               img_c=np.array(imgs[h*w_n+w][:shape_list[h*w_n+w][0],:shape_list[h*w_n+w][1]])
               imgs_c=np.hstack((imgs_c,img_c))
            # print(imgs[h * w_n + w].shape)
        if h==0:
            imgs_h=imgs_c
        else:
            imgs_h=np.vstack((imgs_h,imgs_c))
    return imgs_h

完整代码查看我的github [代码](https://github.com/c1h2e3n4y5u6n7/Image-processing-and-deep-learning/blob/master/patch.py)

效果图

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

一百九十一、Flume——Flume配置文件各参数含义

一、目的 在实际项目的开发过程中,不同Kafka主题的数据规模、数据频率,需要配置不同的Flume参数,而这一切的调试、配置工作,都要建立在对Flume配置文件各参数含义的基础上 二、Flume各参数及其含义 (一)…

深入探究音视频开源库 WebRTC 中 NetEQ 音频抗网络延时与抗丢包的实现机制

目录 1、引言 2、什么是NetEQ? 3、NetEQ技术详解 3.1、NetEQ概述 3.2、抖动消除技术 3.3、丢包补偿技术 3.4、NetEQ概要设计 3.5、NetEQ的命令机制 3.6、NetEQ的播放机制 3.7、MCU的控制机制 3.8、DSP的算法处理 3.9、DSP算法的模拟测试 4、NetEQ源文件…

【发表案例】IF4+,2区SCI期刊,2个月零3天录用,11天见刊!网络安全领域均可

计算机类SCIE 【期刊简介】IF:4.0-5.0,JCR2区,中科院3区 【检索情况】SCIE 在检,正刊 【征稿领域】提高安全性和隐私性的边缘/云的智能方法的研究,如数字孪生等 【截稿日期】5篇版面 录用案例:2个月零…

VTK 标注类Widget 文字标注 vtkCaptionWidget

目录 Part1: 简介 Part2: 效果 Part3: example Part1: 简介 vtkCaptionWidget:用一个带线框及箭头的文本信息来标注某一对象; 在可视化程序中,经常会对某个对象做一些标注说明; 如,在医学图像诊断中,常常会手动标注…

流量回放工具

作用 在评估某个服务可用性时,一种常见方式是采用一些压测工具(如ab/hey/jmeter/siege/wrk/locust等)压测某几个核心接口,一般看达到某个TPS/QPS时,CPU/内存等资源的水位;或者固定资源的阈值,看最高能达到的TPS/QPS。 …

通过SVN拉取项目 步骤

方法一:文件夹方式 首先新建一个空的文件夹,例如,名为“demo”的空文件夹 在这个空的文件夹中鼠标右键,点击SVN Checkout 会出现下图所示的页面,第一个输入框是svn的项目地址,第二个输入框是拉取项目所放的…

jenkins 安装与使用、用户权限划分

jenkins 安装与使用 安装插件: 开启该插件功能 验证用户管理 创建web01~02 使用web01登录 用户权限划分 安装 Role-Based Strategy 插件后,系统管理 中多了如图下所示的一个功能,用户权限的划分就是靠他来做的 创建角色 重新访问 创建项目…

一氧化碳单位换算 以及环保最低排放

换算单位: 1.0 % 10000 mg/m3 1.0 mg/m3 0.870 ppm 举例:CO表测数据 1.0 %,则10000 mg/m3,则10000*22.4/28 8700 ppm 参考:钢铁工业大气污染物超低排放标准 DB13

Ubuntu安装PyCharm

一、PyCharm介绍 PyCharm(“Python的魅力”)是由大名鼎鼎的JetBrains公司出品的一款主要面向Python的集成开发工具(Integrated Development Environment, IDE),功能强大,可以从JetBrains公司官网下载安装包…

基于YOLOv5-7.0的PCB板缺陷检测

目录 参考引用一、数据集介绍二、环境配置三、构建训练数据集四、修改配置文件五、训练及tensorboard可视化六、效果测试七、遇到的BUG 参考引用 你的陈某某-基于YOLOv5的PCB板缺陷检测 一、数据集介绍 印刷电路板(PCB)瑕疵数据集。它是一个公共合成P…

速卖通测评补单的条件和步骤

速卖通测评补单对于卖家来说是一种低成本、高回报的推广营销方式,可以提高商品的流量、转化率、关键词质量分和链接权重。但是如果处理不当,可能会对店铺产生负面影响。下面是实现自养号给自己店铺测评的条件和步骤: 1. 稳定的测评环境系统 …

Shopee买家通系统的功能及优势介绍

Shopee买家通系统是一款专门针对虾皮买家号所开发的软件,完全模拟人类真实行为让操作看起来更真实,可以一键批量注册shoppe买家号、批量绑定地址及支付卡、设置关键词搜索加购及下单,内置防指纹技术可以创建独立运行环境防止账号关联。 五大优…

搭建Pytorch的GPU环境超详细

效果 1、下载和安装VS2019 https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/ 登录需要用户名和密码 安装后需要联网下载组件的,安装的时候要勾选使用C++的桌面开发 2、下载和安装显卡驱动 查看自己的显卡型号 从英伟达下载和安装最新驱动

异常气体识别与飘移

Olfactory Target/Background Odor Detection via Self-expression Model 解决非目标气体检测 摘要:提出了SeELM模型(自表达ELM模型) 分为两步:1.对获得的数据集进行建模,计算出自我表达系数矩阵,2.对于异…

JAVA毕业设计099—基于Java+Springboot+Vue的在线智慧教育考试系统(源码+数据库)

基于JavaSpringbootVue的在线智慧教育考试系统(源码数据库)099 一、系统介绍 本系统前后端分离 本系统分为管理员、用户两种角色(角色权限可自行分配) 学生系统功能 模块介绍登录用户名、密码试题题干支持文本、图片、数学公式、表格等考试主观题支持答题板作答之后保存文…

VR航天科普主题公园模拟太空舱体验馆vr航天模拟体验设备

VR航天航空体验馆巡展是一项非常受欢迎的展览活动,可以让公众在现场体验到航天飞行的乐趣。 普乐蛙VR展览组织者会设计一个航天航空主题的VR体验馆,并在馆内设置各种航天航空相关的展示内容,如太空舱、火箭发射、星际航行等。 其次&#xff0…

matlab 读写磁共振影像.nii 数据

问题描述: 参考LEiDA方法和周昌松老师的large-scale network 的分离整合的划分[1],脑区划分结束后需要把脑区的结果用脑图的形式呈现出来,但是因为我划分脑区的结果都是保存在mat文件里,Brainnet Viewer 则需要使用 .nii 类型的文…

中国xx集团信息技术工程师面试

进入面试间,坐着三位面试官,压力扑面而来,三位面试官先做了自我介绍,介绍了一下面试的流程后才开始面试。 一、自我介绍 不多说。 二、看你学过数据挖掘这门课,能简单介绍一下有哪些章节,学了些什么&…

PHP 智能物业管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 智能物业管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 PHP小区物业管理系统1 代码 https://download.csdn.net/download/qq_41221322/88444…

相似性搜索:第 7 部分--LSH 组合物

Vyacheslav Efimov – Medium S相似性搜索是一个问题,给定一个查询,目标是在所有数据库文档中找到与其最相似的文档。 一、说明 在数据科学中,相似性搜索经常出现在 NLP 领域、搜索引擎或推荐系统中,其中需要检索最相关的文档或项…