读取数据流,本段代码是对图像的输入拼接
简述:两个文件夹,每个文件夹中包含相同数量的照片和相同的label,需要两个文件夹下的照片需要拼接,然后显示。
import cv2 as cv
import numpy as np
import requests
import os
import math
import fnmatch
import shutil
import time
import datetime
import json
import re
def is_file_match(filename, patterns):
"""
判断文件是否符合判定条件 patterns
:param filename: 目标检测文件名
:param patterns: 文件对比条件
:return: 返回判断结果 匹配成功返回True 匹配失败返回False
"""
for pattern in patterns:
if fnmatch.fnmatch(filename, pattern):
return True
return False
def find_special_files(root, patterns=['*'], exclude_dirs=[], exclude_files=['.DS_Store']):
"""
寻找特定文文件夹中各个符合筛选条件文件的路径
:param root: 文件路径
:param patterns: 文件类别
:param exclude_dirs: 排除特定文件夹
:param exclude_files: 排除特定文件
:return: 返回文件夹中各个符合筛选条件文件的路径(迭代器)
"""
for root, dirnames, filenames in os.walk(root):
for filename in filenames:
if filename not in exclude_files:
if is_file_match(filename, patterns):
yield os.path.join(root, filename)
for d in exclude_dirs:
if d in dirnames:
dirnames.remove(d)
for i in find_special_files(root=r'C:\Users\Bitwenzi\Desktop\ss1', patterns=['*.jpg']):
# 可以修改, os.path.basename(i) 是输入的地址
name = os.path.basename(i)
img1_p = os.path.join(r'C:\Users\Bitwenzi\Desktop\ss1', name)
img2_p = os.path.join(r'C:\Users\Bitwenzi\Desktop\rr1', name)
img1 = cv.imread(img1_p)
img2 = cv.imread(img2_p)
img = np.hstack((img1, img2))
for j in range(1,1518):
cv.imwrite(r'C:\Users\Bitwenzi\Desktop\rr2\000' + str(j) + ".jpg", img)
cv.imshow('', img)
if cv.waitKey(20) ==27: # ####
break