图像分块及拼接

news2024/11/18 6:28:29

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

分块结果:
在这里插入图片描述
拼接结果:
在这里插入图片描述
代码:

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


def get_patch(img,patch_size):
    imgs = []
    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):
        foot=top+new_h
        if foot>h:foot=h
        left=0
        for c in range(col):
             right=left+new_w
             if right >w:right=w
             img_patch =img[top:foot,left:right]
             left = left + new_w+1
             imgs.append(img_patch)
             # a[r][c].imshow(img_patch)
        top = top + new_h+1
    # plt.show()
    return imgs,row,col
def jointImage(imgs,h_n,w_n,):
    for h in range(h_n):
        # 按行拼接
        for w in range(w_n):
            # 按列拼接
            if w==0:
               imgs_c=np.array(imgs[h*w_n+w])
            else:
               img_c=np.array(imgs[h*w_n+w])
               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

img=cv.imread('./SIDD-Small Dataset/SIDD_Small_sRGB_Only/SIDD_Small_sRGB_Only/Data/0001_001_S6_00100_00060_3200_L/GT_SRGB_010.PNG')
imgs,h_n,w_n=get_patch(img,1024)
plt.rcParams["figure.figsize"] = [10, 8]
fig, axes = plt.subplots(nrows=h_n, ncols=w_n)
num=0
for r in range(h_n):
    for c in range(w_n):
        axes[r, c].imshow(imgs[num])
        num+=1
# plt.tight_layout()
plt.subplots_adjust(bottom=-.1, right=0.5, top=.8)
plt.show()
full_img=jointImage(imgs,h_n,w_n)
plt.title('full_img')
plt.imshow(full_img)
plt.show()

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

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

相关文章

深度森林(deep-forest)安装

深度森林(deep-forest)安装 1、打开https://pypi.org/,搜索deep-forest,下载wheel文件 在下载好之后,打开文件下载的位置 首先对下载好的wheel文件进行改名,原名是: deep_forest-0.1.7-cp39-c…

符合 EN55022B 规格、LTM4613EY、LTM4613MPV直流µModule稳压器【RG500Q 5G Sub-6 GHz 模块】

一、LTM4613,符合 EN55022B 规格的 36VIN、15VOUT、8A、DC/DC Module 稳压器 (简介)LTM4613 是一款完整、超低噪声、8A 开关模式 DC/DC 电源。封装中内置了开关控制器、功率 FET、电感器和所有的支持元件。LTM4613 的工作输入电压范围为 5V 至…

springboot家政服务管理平台springboot29

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

【数据库审计】2023年数据库审计厂家汇总

我们大家都知道数据库审计的重要意义,不仅可以满足等保合规,还能进行风险告警,保障数据安全。那你知道目前市面上数据库审计厂家有哪些吗?这里小编就给大家汇总一下。 2023年数据库审计厂家汇总 1、行云管家 2、安恒信息 3、…

头戴式耳机什么牌子最好?头戴式耳机推荐性价比高

脖子上挎个头戴式作为随身装备,不仅给服装配饰添加了潮流感,还可以可以随时聆听音乐,随着广大消费者的生活水平不断提高,市面上的头戴式耳机越来越多。 选择头戴式耳机时无非就是听音质、看外观、舒适度等等,那么头戴…

c++视觉----方框滤波

方框滤波 cv::boxFilter()函数是OpenCV中用于应用方框滤波的函数。方框滤波是一种基本的平滑滤波方法,它使用一个均匀权重的矩形核来平均处理像素的值。 以下是cv::boxFilter()函数的基本用法: void cv::boxFilter(cv::InputArray src, // 输入图…

[引擎开发] 杂谈ue4中的Vulkan

接触Vulkan大概也有大半年,概述一下自己这段时间了解到的东西。本文实际上是杂谈性质而非综述性质,带有严重的主观认知,因此并没有那么严谨。 使用Vulkan会带来什么呢?简单来说就是对底层更好的控制。这意味着我们能够有更多的手段…

为什么要学C语言及C语言存在的意义

为什么要学C语言及C语言存在的意义 汇编生C,C生万物。linus说自己最喜欢的语言就是C语言,因为看到写出的代码就能想到对应的汇编码。一方面说明C语言足够简洁,没有像C中一样的复杂概念封装,另一方面也说明C语言足够的底层&#xf…

二、Nginx启停命令和升级更新

1.Nginx服务器启停命令 1.1Nginx服务的信号控制(省略) 1.2Nginx的命令行控制 nginx -? 或者 nginx -h显示帮助信息nginx -v打印版本号信息并退出nginx -V打印版本号信息和配置信息并退出nginx -t测试nginx的配置文件语法是否正确并退出nginx -T测试ng…

弱电工程师和单片机工程师未来那行更有前景?

弱电工程师和单片机工程师未来那行更有前景? 单片机行业不太懂,但是感觉上,单片机行业会更加专业一点,偏研发多一点。 下面稍微说下弱电工程师这个部分,从两个维度上去说,一个是做哪些事情,一个是做哪些系…

L1-035 情人节 c++解法

题目再现 以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋。 输入格式: 输入…

鉴源实验室 | AUTOSAR SecOC:保障汽车通信的安全

作者 | 沈平 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 在现代汽车行业中,随着电子控制单元(ECUs)的普及以及车与车之间通信的不断增加,确…

百度网盘加群图解教程

最近很多朋友说不知道怎么操作百度网盘群,这里弄一个图解教程,大家可以学一下~ 步骤1:获取群号 以这个群号为例子:628174363 步骤2:搜索百度盘群 步骤3:找文件库 加群之后,点击右上角的文件库…

TPU编程竞赛|算丰助力2023 CCF大数据与计算智能大赛!

目录 赛题介绍 赛题背景 赛题任务 赛程安排 初赛阶段 2023/09/25-11/27 决赛阶段 2023/11/28-12/17 评分机制 奖项设置 赛题奖项 赛事奖项 近日,第十一届2023CCF大数据与计算智能大赛(简称CCF BDCI)正式启动报名,本次大…

低功耗国产蓝牙芯片OM6621/HS6621- 蓝牙防丢器

在繁忙的生活中,我们往往会因为疏忽而丢失贵重物品,如钱包、钥匙、手机等,给生活带来不小的麻烦。然而,现代科技正为我们提供一种聪明的解决方案——蓝牙防丢器。这款小巧智能的装置不仅保护您的财物,还为您的生活带来…

好消息:用 vue3+layui 共同铸造我们新的项目

前言: layui这个框架不知道多少人还在关注着,记得第一次接触它是在18年,后来随着vue,react的盛行,jquerylayui的模式受到了特别大的冲击,后来作者都放弃维护他的官方网站,转而在github/gitee上做…

多测师肖sir_高级金牌讲师_python的安装002

一、python安装 1、python包(我们目前学习的版本是3.7) python-3.7.3 版本 2、Python下载的官网:https://www.python.org/downloads/ 最新包:3.12 3、下载好python安装包,在新建一个python文件件,我们要…

maven环境配置

1.从官网下载 Maven – Download Apache Maven 2.配置maven环境 把下载的maven放到一个固定的目录 配置环境变量 配置后执行mvn -version&#xff0c;如下提示就是成功了。 3.Idea配置maven 4.配置maven源&#xff0c;下载速度更快 <mirror> <id>nexu…

30个接口自动化测试面试题,看完的现在已经在办理入职了...

1. 什么是接口自动化测试&#xff1f; 答&#xff1a;接口自动化测试是指使用自动化工具对接口进行测试&#xff0c;验证接口的正确性、稳定性和性能等方面的指标。 2. 为什么要进行接口自动化测试&#xff1f; 答&#xff1a;接口自动化测试可以提高测试效率&#xff0c;减…

基于maven的项目搭建(已跑通)

1、直接选择archetype-webapp即可 &#xff08;这里很多人会觉得很慢–解决方案&#xff1a;https://blog.csdn.net/qq_45591895/article/details/133705674?spm1001.2014.3001.5501&#xff09; 2、手动添加一个java目录即可。 3、添加Tomcat 3、这就跑通了&#xff0c;可以…