当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

表情包怎么马赛克?总结很全面速看!Python实现多张图片合成一张马赛克图片

目录

前言开发环境实现代码首先获取必需模块图片文件读取所有源图片并计算相应颜色的平均值合法图像列表平均颜色列表主函数模块调用全部效果

前言

最近,一位网民购买了将多张照片合成马赛克照片的方法

女儿出生到现在,所有的照片,大约有几百张,所以我想合成这些照片,用作生日礼物。

那么,今天用上次上传表情包的照片制作一次马赛克照片,合成2万张,就很兴奋了。、、

私人01可以获得大量的python学习资源

欢迎加入。请一起讨论学习

照片材质

4K高清原版

开发环境

python 3.6

Pycharm

实现代码

首先获取所需的模块

1

2

3

4

5

6

Import cv2

Import glob

Import argparse

Import numpy as NP

From tqdm import tqdm #进度列

From itertools import product #迭代器

读取图片文件

1

2

3

4

5

6

7

8

9

10

Def parsArgs():

Parser=arg(“马赛克图片”)

('-targetpath ',type=str,default=' example,help='大象图像路径')

('-outputpath ',type=str,default=' ou,help='输出图像的路径')

('-sourcepath ',type=str,default=' sourceimages ',help='用于连接图像的所有源图像文件路径')

('-block size ',type=int,default=15,help='马赛克快速大小')

Args=()

Return args

读取所有源图片并计算其颜色平均值

1

2

Def readsourceimages (sourcepath,blocksize) :

Print(“开始读取图像”)

合法形象列表

设置一个列表来存储符合您要求的颜色图像

le>

1

sourceimages = []


平均颜色列表

1

avgcolors = []


遍历

每遍历一次,进度条走一次

1

2

3

4

5

6

7

8

9

10

11

12

for path in tqdm("{}/*.jpg".format(sourcepath))):

image = cv2.imread(path, cv2.IMREAD_COLOR)

if image.shape[-1] != 3:

continue

# 缩放尺寸

image = cv2.resize(image, (blocksize, blocksize))

# 图像颜色平均值

avgcolor = np.sum(image, axis=0), axis=0) / (blocksize * blocksize)

sourceimages.append(image)

avgcolors.append(avgcolor)

print('结束读取')

return sourceimages,np.array(avgcolors)


主函数

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

def main(args):

targetimage = cv2.imread)

outputimage = np.zeros(targetimage.shape,np.uint8) # int8 int16 int32 int64

sourceimages,avgcolors = readSourceImage)

print('开始制作')

for i, j in tqdm(product(range(int(targetimage.shape[1])), range(int(targetimage.shape[0])))):

block = targetimage[j * args.blocksize: (j + 1) * args.blocksize, i * args.blocksize: (i + 1) * args.blocksize,:]

avgcolor = np.sum(block, axis=0), axis=0) / * 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, outputimage)

cv2.imshow('result', outputimage)

print('制作完成')


模块调用执行

1

2

3

if __name__ == '__main__':

# run

main(parseArgs())


完整效果

到此这篇关于Python实现多张图片合成一张马赛克图片的文章就介绍到这了

1.《表情包怎么马赛克?总结很全面速看!Python实现多张图片合成一张马赛克图片》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《表情包怎么马赛克?总结很全面速看!Python实现多张图片合成一张马赛克图片》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3335211.html

上一篇

表格总汇表怎么做?我来告诉你答案excel数据分类汇总怎么做

下一篇

表情包怎么自己弄?总结很全面速看!自己创作的表情包需要对其版权登记吗?又该怎么做?

表情包怎么马赛克?总结很全面速看!如何一秒给图片打马赛克?试试在线神器「Redact.Photo」

  • 表情包怎么马赛克?总结很全面速看!如何一秒给图片打马赛克?试试在线神器「Redact.Photo」
  • 表情包怎么马赛克?总结很全面速看!如何一秒给图片打马赛克?试试在线神器「Redact.Photo」
  • 表情包怎么马赛克?总结很全面速看!如何一秒给图片打马赛克?试试在线神器「Redact.Photo」

表情包怎么马赛克?总结很全面速看!办公技能!电脑上如何给照片上打马赛克

  • 表情包怎么马赛克?总结很全面速看!办公技能!电脑上如何给照片上打马赛克
  • 表情包怎么马赛克?总结很全面速看!办公技能!电脑上如何给照片上打马赛克
  • 表情包怎么马赛克?总结很全面速看!办公技能!电脑上如何给照片上打马赛克

表情包怎么马赛克?我来告诉你答案怎样巧妙地给图片文件打马赛克?

  • 表情包怎么马赛克?我来告诉你答案怎样巧妙地给图片文件打马赛克?
  • 表情包怎么马赛克?我来告诉你答案怎样巧妙地给图片文件打马赛克?
  • 表情包怎么马赛克?我来告诉你答案怎样巧妙地给图片文件打马赛克?
表情包怎么马赛克?我来告诉你答案老年人学手机(146)如何给图片打马赛克?

表情包怎么马赛克?我来告诉你答案老年人学手机(146)如何给图片打马赛克?

表情包怎么马赛克相关介绍,老年人学手机(146)怎么给照片打马赛克? 先看我的操作视频,看不清楚的地方,再看下面的文字说明。 [科普杜说] 之前在【科普斗说】中强调了不要轻易把手机发给陌生人,一些老年朋友还没有认识到任何危险。...