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中chr、unichr、ord字符函数之间的对比
Jun 16 Python
python3实现SMTP发送邮件详细教程
Jun 19 Python
python看某个模块的版本方法
Oct 16 Python
python设定并获取socket超时时间的方法
Jan 12 Python
python tkinter组件摆放方式详解
Sep 16 Python
Python imageio读取视频并进行编解码详解
Dec 10 Python
Python @property及getter setter原理详解
Mar 31 Python
Python如何脚本过滤文件中的注释
May 27 Python
python要安装在哪个盘
Jun 15 Python
Python 实现微信自动回复的方法
Sep 11 Python
Python数据分析之pandas函数详解
Apr 21 Python
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
Jun 08 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
EasyUI中在表单提交之前进行验证
2016/07/19 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
从零学Python之入门(五)缩进和选择
2014/05/27 Python
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
初一学生评语大全
2014/04/24 职场文书
供电工程专业求职信
2014/08/09 职场文书
党员自我对照检查材料
2014/08/19 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
运动员加油词
2015/07/18 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android