numpy数组做图片拼接的实现(concatenate、vstack、hstack)


Posted in Python onNovember 08, 2019

两种方法拼接

#img = np.vstack((img, img2))  # vstack按垂直方向,hstack按水平方向
img = np.concatenate((img, img2), axis=0)  # axis=0 按垂直方向,axis=1 按水平方向

统一图片大小,保证数组维度一致避免拼接失败。 把图片全部调整成第一张图的宽高

def img_size(image_names,width, height):
  for i in image_names:
    img = cv2.imread(os.path.join(img_path, i))
    img_resize = cv2.resize(img, (width, height), interpolation=cv2.INTER_CUBIC)
    cv2.imwrite(os.path.join(img_path, i), img_resize)
    print(os.path.join(img_path, i))

完整案例,拼接文件夹中的所有图片

import cv2
import os
import numpy as np

def img_size(image_names,width, height):
  for i in image_names:
    img = cv2.imread(os.path.join(img_path, i))
    img_resize = cv2.resize(img, (width, height), interpolation=cv2.INTER_CUBIC)
    cv2.imwrite(os.path.join(img_path, i), img_resize)
    print(os.path.join(img_path, i))

if __name__ == '__main__':
  img_path = r'F:\studytest'
  image_names = [name for name in os.listdir(img_path) if os.path.splitext(name)[1] == ".jpg"]
  img1 = cv2.imread(os.path.join(img_path, image_names[0]))
  width, height = img1.shape[:2][::-1]
  img_size(image_names,width, height)
  img = img1

  for i in range(1,len(image_names)):
    img_page = image_names[i]
    img2 = cv2.imread(os.path.join(img_path, img_page))
    #img = np.vstack((img, img2))  # vstack按垂直方向,hstack按水平方向
    img = np.concatenate((img, img2), axis=0)  # axis=0 按垂直方向,axis=1 按水平方向
  cv2.imwrite(os.path.join(img_path,"res.jpg"), img)
  # cv2.imshow("img",img)
  # cv2.waitKey()
``

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python数据结构之图的实现方法
Jul 08 Python
Python实现批量下载图片的方法
Jul 08 Python
Python编程argparse入门浅析
Feb 07 Python
基于MTCNN/TensorFlow实现人脸检测
May 24 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
Oct 11 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
Dec 12 Python
python带参数打包exe及调用方式
Dec 21 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
python 爬虫请求模块requests详解
Dec 04 Python
Python基础之hashlib模块详解
May 06 Python
关于Python中*args和**kwargs的深入理解
Aug 07 Python
python实现身份证实名认证的方法实例
Nov 08 #Python
Python Django框架模板渲染功能示例
Nov 08 #Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 #Python
Django框架下静态模板的继承操作示例
Nov 08 #Python
python中自带的三个装饰器的实现
Nov 08 #Python
python反转列表的三种方式解析
Nov 08 #Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 #Python
You might like
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
详解Vue组件实现tips的总结
2017/11/01 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
关于vue状态过渡transition不起作用的原因解决
2019/04/09 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
python中随机函数random用法实例
2015/04/30 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
python中的set实现不重复的排序原理
2018/01/24 Python
Python中的元组介绍
2019/01/28 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
python将数组n等分的实例
2019/12/02 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
读书活动总结范文
2014/04/26 职场文书
干部鉴定材料
2014/05/18 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
2015年个人思想总结
2015/03/09 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
2015年测量员工作总结
2015/05/23 职场文书
通讯稿范文
2015/07/22 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
MySQL多表查询机制
2022/03/17 MySQL
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android