




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Python实现多张图片合成一张马赛克图片目录前言开发环境实现代码先导入所需模块读取图片文件读取所有源图片并计算对应颜色平均值合法图像列表平均颜色列表遍历主函数模块调用执行完整效果
前言
最近有网友私信我,问如何把多张图片合成一张马赛克图片的样子
说是女儿从出生到现在,所有的照片,大概有上百张,所以想使用这些照片合成一张,当做生日礼物
那我们今天就用上次爬表情包的图片来做一次马赛克图片,2万张合成一张,想想就很激动
图片素材
4K高清原图
开发环境
Python3.6
Pycharm
实现代码
先导入所需模块
importcv2
importglob
importargparse
importnumpyasnp
fromtqdmimporttqdm#进度条
fromitertoolsimportproduct#迭代器
读取图片文件
defparsArgs():
parser=argparse.ArgumentParser('拼接马赛克图片')
parser.add_argument('--targetpath',type=str,default='examples/3.jpg',help='目标图像路径')
parser.add_argument('--outputpath',type=str,default='output.jpg',help='输出图像的路径')
parser.add_argument('--sourcepath',type=str,default='sourceimages',help='用来拼接图像的所有源图像文件路径')
parser.add_argument('--blocksize',type=int,default=15,help='马赛克快的大小')
args=parser.parse_args()
returnargs
读取所有源图片并计算对应颜色平均值
defreadSourceImages(sourcepath,blocksize):
print('开始读取图像')
合法图像列表
设置一个列表,存放符合要求的颜色图像
sourceimages=[]
平均颜色列表
avgcolors=[]
遍历
每遍历一次,进度条走一次
forpathintqdm(glob.glob("{}/*.jpg".format(sourcepath))):
image=cv2.imread(path,cv2.IMREAD_COLOR)
ifimage.shape[-1]!=3:
continue
#缩放尺寸
image=cv2.resize(image,(blocksize,blocksize))
#图像颜色平均值
avgcolor=np.sum(np.sum(image,axis=0),axis=0)/(blocksize*blocksize)
sourceimages.append(image)
avgcolors.append(avgcolor)
print('结束读取')
returnsourceimages,np.array(avgcolors)
主函数
defmain(args):
targetimage=cv2.imread(args.targetpath)
outputimage=np.zeros(targetimage.shape,np.uint8)#int8int16int32int64
sourceimages,avgcolors=readSourceImages(args.sourcepath,args.blocksize)
print('开始制作')
fori,jintqdm(product(range(int(targetimage.shape[1]/args.blocksize)),range(int(targetimage.shape[0]/args.blocksize)))):
block=targetimage[j*args.blocksize:(j+1)*args.blocksize,i*args.blocksize:(i+1)*args.blocksize,:]
avgcolor=np.sum(np.sum(block,axis=0),axis=0)/(args.blocksize*args.blocksize)
distances=np.linalg.norm(avgcolor-avgcolors,axis=1)
idx=np.argmin(distances)
outputimage[j*args.blocksize:(j+1)*args.blocksize,i*args.blocksize:(i+1)*args.blocksize,:]=\
sourceimages[idx]
cv2.imwrite(args.outputpath,outputimage)
cv2.im
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 耳目一新2025年主管护师考试试题及答案
- 主管护师考试经验交流试题及答案
- 实战模拟执业药师考试练习试题及答案
- 护理专业新旧考点对比研究试题及答案
- 自考行政管理社会评估试题及答案
- 2025年执业医师考试国际标准对比试题及答案
- 护理学科综合素养考核题及答案2025年
- 行政管理专科公共服务监测试题及答案
- 护理服务质量提升试题及答案总结
- 行政管理培训考试试题发布及答案
- 初中英语单元整体教学讲座课件
- 精油按摩手法精油按摩九部位纾解压力课件
- 考研考博-英语-四川美术学院考试押题三合一+答案详解篇
- DB37-T 3848-2019 地热矿泉水绿色矿山建设规范-(高清版)
- 酒店早餐自助菜单
- 鲤科鱼类八亚科检索表(新)
- 冀教英语六年级下册作文范文
- 10x2000对称式三辊卷板机设计机械毕业设计论文
- 讲课资料全文解读《公务员回避规定》PPT课件
- GB∕T 8334-2022 液化石油气钢瓶定期检验与评定
- 律师事务所劳动合同范本2(律师助理和实习律师参照适用
评论
0/150
提交评论