python opencv(7)图像平铺

本文介绍了一种使用Python和OpenCV库实现图像平铺的方法。通过建立一张空白图像并复制原始图像到该空白图像上,实现了将一个图像横向平铺5次、纵向平铺2次的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

建立一张空白图像,把原来的图像复制上去(将每个像素值复制),再进行平铺,就能得到结果。如横向平铺5个图像,纵向平铺2个图像:

import cv2
import numpy as np
fn = "baboon.jpg"
if __name__ == '__main__':
    print 'loading %s ... ' % fn
    img = cv2.imread(fn)
    w = img.shape[1]
    h = img.shape[0]
    #layoff the pictures in rows
    sz1 = w*5
    sz0 = h*2
    #generate a blank photo
    myimg1 = np.zeros((sz0,sz1,3),np.uint8)
    #copy each pixels'value
    img_x = 0
    img_y = 0
    for now_y in xrange(0,sz0):
        for now_x in xrange(0,sz1):
            myimg1[now_y,now_x,0] = img[img_y,img_x,0]
            myimg1[now_y,now_x,1] = img[img_y,img_x,1]
            myimg1[now_y,now_x,2] = img[img_y,img_x,2]
            img_x +=1
            if img_x >= w:
               img_x = 0
        img_y +=1
        if img_y >=h:
           img_y = 0
        print '.',
        cv2.namedWindow('img1')
        cv2.imshow('img1',myimg1)
        cv2.waitKey()
        cv2.destroyAllWindows()
当然可以。在Python中使用OpenCV库进行图像处理是一个非常常见的任务,包括将两张图片拼接在一起。下面是详细的步骤以及代码示例: ### 步骤说明 #### 准备工作 首先需要安装`opencv-python`包,如果尚未安装的话,可以通过pip命令快速完成: ```bash pip install opencv-python ``` #### 拼接过程概述 1. **读取图像**:利用cv2.imread()函数加载要拼接的两幅图。 2. **调整大小(可选)**:如果你希望两幅图具有相同的尺寸,则应先通过cv2.resize()来设定统一的高度宽度比值。 3. **水平或垂直方向上直接合并**:对于简单的场景可以直接沿某一维度堆叠图像数组;这里我们采用numpy.hstack或者vstack来进行操作。 4. **显示结果**:最后用imshow展示最终效果,并保存成新文件以便后续查看对比等需求。 #### 示例代码 下面是一段具体的实现代码片段用于演示上述流程: ```python import cv2 import numpy as np # 加载待拼接的图片 img_left = cv2.imread('left_image.jpg') img_right = cv2.imread('right_image.jpg') # 调整右侧图片到左侧图片同样高度 (假设想要保持左右两边画面比例一致) height, width = img_left.shape[:2] dim = (width, height) # 目标尺寸 resized_img_right = cv2.resize(img_right, dim) # 将两个图像水平拼接到一起 combined_image = np.hstack((img_left, resized_img_right)) # 显示并保存结果 cv2.imshow("Combined Image", combined_image) cv2.waitKey(0) & 0xFF == ord('q') # 等待按键关闭窗口 cv2.destroyAllWindows() output_filename = "merged_images.jpg" cv2.imwrite(output_filename, combined_image) print(f"已成功创建 {output_filename}") ``` 这段代码实现了基本的功能,即从磁盘读入图像、按需缩放右半部分使其匹配左半边高宽然后将其们平铺于一行内形成单张新的长条形图像,并提供了一个选项让用户观看生成的结果同时还会自动地把合成后的版本另存为一个新的JPEG文档。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值