前言
一、先裁剪合适大小在合并
1.Image库
from PIL import Image
# 打开第一张tif文件
image1 = Image.open('image1.tif')
# 根据裁剪区域裁剪第一张图
cropped_image1 = image1.crop((x1, y1, x2, y2)) # 根据具体需求填入裁剪区域的坐标
# 打开第二张tif文件
image2 = Image.open('image2.tif')
# 根据裁剪区域裁剪第二张图
cropped_image2 = image2.crop((x1, y1, x2, y2)) # 根据具体需求填入裁剪区域的坐标
# 创建新的tif文件,大小为裁剪后的图像大小
merged_image = Image.new('RGB', (new_width, new_height)) # 根据具体需求填入新图像的宽度和高度
# 将第一张裁剪后的图像粘贴到新的tif文件中
merged_image.paste(cropped_image1, (x1, y1)) # 根据具体需求填入粘贴的起始坐标
# 将第二张裁剪后的图像粘贴到新的tif文件中
merged_image.paste(cropped_image2, (x2, y2)) # 根据具体需求填入粘贴的起始坐标
# 保存合并后的tif文件
merged_image.save('merged_image.tif')
2tifffile库
import tifffile
# 打开第一张tif文件
image1 = tifffile.imread('image1.tif')
# 根据裁剪区域裁剪第一张图
cropped_image1 = image1[x1 : x2 , y1 : y2] # 根据具体需求填入裁剪区域的坐标
# 打开第二张tif文件
image2 = tifffile.imread('image2.tif')
# 根据裁剪区域裁剪第二张图
cropped_image2 = image2[x1 : x2 , y1 : y2] # 根据具体需求填入裁剪区域的坐标
# 创建新的tif文件,大小为裁剪后的图像大小
merged_image = Image.new('RGB', (new_width, new_height)) # 根据具体需求填入新图像的宽度和高度
# 将第一张裁剪后的图像粘贴到新的tif文件中
merged_image.paste(cropped_image1, (x1, y1)) # 根据具体需求填入粘贴的起始坐标
# 将第二张裁剪后的图像粘贴到新的tif文件中
merged_image.paste(cropped_image2, (x2, y2)) # 根据具体需求填入粘贴的起始坐标
# 保存合并后的tif文件
merged_image.save('merged_image.tif')
二、把tif格式图片横向/纵向拼接
1.np.concatenate()
import numpy as np
import tifffile
# 读取 TIFF 图像
image1 = tifffile.imread('image1.tif')
image2 = tifffile.imread('image2.tif')
# 横向拼接
concatenated_horizontal = np.concatenate((image1, image2), axis=1)
# 纵向拼接
concatenated_vertical = np.concatenate((image1, image2), axis=0)
# 保存拼接后的图像
tifffile.imwrite('concatenated_horizontal.tif', concatenated_horizontal)
tifffile.imwrite('concatenated_vertical.tif', concatenated_vertical)
2. np.hstack()横向/np.vstack()纵向
import numpy as np
import tifffile
# 读取 TIFF 图像
image1 = tifffile.imread('image1.tif')
image2 = tifffile.imread('image2.tif')
# 横向拼接
result_horizontal = np.hstack(image1, image2)
# 纵向拼接
result_vertical = np.vstack((image1, image2)
# 保存拼接后的图像
tifffile.imwrite('result_horizontal.tif', result_horizontal.tif)
tifffile.imwrite('result_vertical.tif', result_vertical.tif)