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

图像分块及拼接

  • 问题
  • python 代码
  • 效果图

问题

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

python 代码

import numpy as np
import cv2 as cv
import matplotlib.pyplot as pltdef get_patch(img,patch_size):imgs = []shape_list = []h, w, n = img.shapenew_h, new_w = patch_size, patch_sizecol = int(w / patch_size) + 1row = int(h / patch_size) + 1patch_n = col * rowtop = 0for r in range(row):insert_zeros_row = np.empty((0, 0, 3))foot = top + new_hif foot > h:foot_gap = foot - hfoot = hinsert_zeros_row = np.zeros((foot_gap, new_w,3))left = 0for c in range(col):insert_zeros_col = np.empty((0, 0, 3))right = left + new_wif right > w:right_gap = right - wright = wif 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_wimgs.append(img_patch)top = top + new_hreturn 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):# 按列拼接imgif 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_celse: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.hqwc.cn/news/140575.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IPv6知识概述 - ND协议

IPv6知识概述 - ND协议 参考文章:https://blog.csdn.net/Gina_wj/article/details/106708770 IPv6基础篇(四):邻居发现协议NDP ND协议功能概述 ND(Neighbor Discovery,邻居发现)协议是IPv6的…

2023年10月中国数据库排行榜:墨天轮榜单前五开新局,金仓、亚信热度攀升

怀鸿鹄之志,展骐骥之跃。 2023年10月的 墨天轮中国数据库流行度排行 火热出炉,本月共有286个数据库参与排名。本月排行榜前十名变动较大,**华为 openGauss 重归探花之位,人大金仓 KingBase 热度上升,亚信 AntDB 进军10…

【LeetCode75】第七十四题 每日温度

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个数组,表示每天的温度,要我们返回一个同样长度的数组,答案里装着当前气温的下一个更高气…

大数据Hadoop之——部署hadoop+hive+Mysql环境(window11)

一、安装JDK8 【温馨提示】对应后面安装的hadoop和hive版本,这里使用jdk8,这里不要用其他jdk了,可能会出现一些其他问题。 1)JDK下载地址 Java Downloads | Oracle 按正常下载是需要先登录的,这里提供一个不用登录下载…

ES6(ECMAScript 2015)有哪些新属性,如何判断当前浏览器是否支持?

ES6(ECMAScript 2015)引入了许多新的语法和特性,以增强 JavaScript 编程语言的功能。以下是一些常见的 ES6 语法和特性以及它们的解释: let 和 const 声明: let 和 const 用于声明变量,代替了旧的 var 关键…

App出海起量难?传参安装打开获客增长新途径

近年来,在App出海潮越发热烈的背景下,如何适应海外市场并实现“用户增长”与“提高转化”,已成为出海团队需要面临的重大挑战之一。 如何在海外市场短时间内快速起量?这个问题难倒了不少出海创业者,毕竟目前互联网环境…

ES|QL:Elasticsearch的 新一代查询语言

作者:李捷 “学会选择很难。学会正确选择更难。而在一个充满无限可能的世界里学会正确选择则更难,也许是太难了。” 巴里-施瓦茨(Barry Schwartz)在《选择的悖论--多就是少》(The Paradox of Choice -More is Less&…

分享一下微信小程序里的预约链接怎么做

微信小程序是一种无需下载安装即可使用的应用程序,它依托于微信平台,为用户提供了更加便捷的使用体验。在小程序中,我们可以制作预约链接,以便用户直接在微信中进行预约,提高服务效率。下面我们将探讨如何制作微信小程…

如何选择适合自己的跨境商城源码

选择适合自己的跨境商城源码是每个想要开展跨境电商业务的企业所面临的重要决策。源码的选择直接关系到商城功能的完整性、运营的便捷性以及未来的可定制性。在众多源码供应商中,我们为您提供以下几点参考,帮助您做出明智的选择。 1. 功能完整性 一个适合…

Linux高性能服务器编程——ch2笔记

第2章 IP 协议详解 2.1 IP服务的特点 无状态:IP通信双方不同步传输数据的状态信息。IP数据报相互独立,缺点是无法处理乱序和重复的IP数据报。上层协议如果是面向连接的协议(TCP),能够自己处理乱序和重复的报文段。IP…

一百九十、Hive——Hive刷新分区MSCK REPAIR TABLE

一、目的 在用Flume采集Kafka中的数据直接写入Hive的ODS层静态分区表后,需要刷新表,才能导入分区和数据。原因很简单,就是Hive表缺乏分区的元数据 二、实施步骤 (一)问题——在Flume采集Kafka中的数据写入HDFS后&am…

怎么就火了?小红书“早八人”研究

不久前,小红书「早八课」开讲,通勤旅行、植物赏鉴、遛狗哲学等,鼓励用户早起学习“奇奇怪怪”的知识点。 同期,上线相关话题#我的早八打开方式#浏览量700W,如何“化早八的痛苦为美好”成为大众所趋。本期千瓜将结合早…