我是靠谱客的博主 紧张柜子,最近开发中收集的这篇文章主要介绍python实现将一幅图拼接到另一幅图上,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

# Standard imports
import cv2
import numpy as np
import os
import matplotlib.pyplot as plt
# Read images
#准备拼接的图
input_dir='./cai_jian'#拼接图的文件夹
dst = cv2.imread("./yuan_tu/0.jpg")#被拼接的图
# Create a rough mask around the airplane.
#src_mask = np.zeros(src.shape, src.dtype)
# 当然我们比较懒得话,就不需要下面两行,只是效果差一点。
for filename in os.listdir(input_dir):
    path=input_dir+'/'+filename
    src = cv2.imread(path)
    sp= src.shape
    h=sp[0]#高
    w=sp[1]#宽
    print(filename,w, h)
    if h>w:
        max=h
        min=w
    else:
        max=w
        min=h
    print(max)
    if max<180:
        src_mask = 255 * np.ones(src.shape, src.dtype) #<-- 全白
        #poly = np.array([ [4,80], [30,54], [151,63], [254,37], [298,90], [272,134], [43,122] ], np.int32)
        #cv2.fillPoly(src_mask, [poly], (255, 255, 255))
        # 这是CENTER 所在的地方
        center = (90,90)
        # Clone seamlessly.
        output = cv2.seamlessClone(src, dst, src_mask, center, cv2.NORMAL_CLONE)
        # 保存结果
        cv2.imwrite("./pin_jie/"+filename, output)
    else:
        scale=180/max
        src1=cv2.resize(src,(int(w * scale), int(h * scale)))
        #plt.subplot(2, 2, 1),plt.imshow(src)
        #plt.subplot(2, 2, 2),plt.imshow(src1)
        plt.show()
        src_mask = 255 * np.ones(src1.shape, src1.dtype)  # <-- 全白
        # poly = np.array([ [4,80], [30,54], [151,63], [254,37], [298,90], [272,134], [43,122] ], np.int32)
        # cv2.fillPoly(src_mask, [poly], (255, 255, 255))
        # 这是准备拼接图所在的中心位置
        center = (90, 90)
        # Clone seamlessly.
        output = cv2.seamlessClone(src1, dst, src_mask, center, cv2.NORMAL_CLONE)
        # 保存结果
        cv2.imwrite("./pin_jie/" + filename, output)

效果:
原图:
在这里插入图片描述
拼接图:
在这里插入图片描述
拼接后:
在这里插入图片描述
这里被拼接的尺寸是180*180的,如果拼接图尺寸比这个大,需要根据相应程序中的代码去挑合适的比例进行缩放。
参考

最后

以上就是紧张柜子为你收集整理的python实现将一幅图拼接到另一幅图上的全部内容,希望文章能够帮你解决python实现将一幅图拼接到另一幅图上所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部