多张图咋弄啊
多张图片可以两两计算 耗时应该还是可以接受的 具体可以参考下 iphone的 picsew这个软件 或者微信搜索 易飞拼图这个小程序 都是类似的
多张图片可以两两计算 耗时应该还是可以接受的 具体可以参考下 iphone的
picsew这个软件 或者微信搜索易飞拼图这个小程序 都是类似的
两两计算貌似不行呀!需要两张图片尺寸一样才可以
多张图片可以两两计算 耗时应该还是可以接受的 具体可以参考下 iphone的
picsew这个软件 或者微信搜索易飞拼图这个小程序 都是类似的两两计算貌似不行呀!需要两张图片尺寸一样才可以
这里主要针对屏幕截图等场景 一般来说尺寸(主要是宽度)肯定是一样的 如果尺寸不一样 即使经过缩放一样的话 像素损失也比较大
像底部部分位置有点差别的图片(比如safari浏览器 滑动以后底部网址栏样式会变)以及 截取的模板是纯色区域,会出现识别到空白的地方匹配度特别高 有没有好的方式呢
像底部部分位置有点差别的图片(比如safari浏览器 滑动以后底部网址栏样式会变)以及 截取的模板是纯色区域,会出现识别到空白的地方匹配度特别高 有没有好的方式呢
这个问题之前也遇到过,主要做法可以将底部变化的部分裁减掉进行匹配。另外建议新开一个issue进行讨论
多张图的话 用第一张图(长图)的下半部分和第二张图(短图)进行处理就好了
添加函数
# 新增
from PIL import Image
import os
......
# 新增
def p_img(path1, path2, out_path):
img1 = cv2.imread(path1)
img2 = cv2.imread(path2)
dst = draw(img1, img2)
cv2.imwrite(out_path, dst)
def p_img_main(path1, path2, out_path, header_height):
if not os.path.exists('./tmp'):
os.mkdir('./tmp')
img_1 = Image.open(path1)
img_2 = Image.open(path2)
crop_area_1 = (0, img_1.size[1] - img_2.size[1], img_1.size[0], img_1.size[1])
img_tmp1 = img_1.crop(crop_area_1)
path_tmp1 = './tmp/tmp1.png'
img_tmp1.save(path_tmp1)
path_tmp2 = './tmp/tmp2.png'
p_img(path_tmp1, path2, path_tmp2)
img_tmp2 = Image.open(path_tmp2)
crop_area_1 = (0, 0, img_1.size[0], img_1.size[1]-img_2.size[1] + header_height)
i1 = img_1.crop(crop_area_1)
crop_area_2 = (0, header_height, img_tmp2.size[0], img_tmp2.size[1])
i2 = img_tmp2.crop(crop_area_2)
new_image = Image.new('RGB', (i1.size[0], i1.size[1] + i2.size[1]))
new_image.paste(i1, (0, 0))
new_image.paste(i2, (0, i1.size[1]))
new_image.save(out_path)
if __name__ == "__main__":
# 图片1路径(长图)
img_1_path = './tmp/res.png'
# 图片2路径(短图)
img_2_path = './tmp/2.png'
# 保存路径
out_path = './tmp/res.png'
# 头部(顶端冻结部分)高度
header_height = 150
p_img_main(img_1_path, img_2_path, out_path, header_height)