【教学类-50-14】20240505“数一数”图片样式12:数一数(12个“人物”图案)

作品展示

背景需求:

前文做了“”材料”图片的数一数学具,效果不错,

https://blog.csdn.net/reasonsummer/article/details/138466325icon-default.png?t=N7T8https://blog.csdn.net/reasonsummer/article/details/138466325

为了让图案内容更丰富,我又选了孩子们“春游活动(学军活动计划书)”上的人物图案——军人叔叔站军姿、吊杠训练、射击训练等动作

一、素材准备

选一些特征明显人物图片,进行特写拍照

放到Photoshop里面修图,做成黑白简笔画(517*517像素)

素材位置

代码与“材料”相同,也是生成5个等级(0,5-0.1)

'''
04数一数图片(人物图片)边框内+图形不相接 
作者:AI对话大师、阿夏
时间:2024年4月28日 20:00
'''import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import os
import random
import time
from shapely.geometry import Polygon# 输入画布大小和要生成的图片数量
canvas_size =15
# int(input('请输入画布大小:15\n'))
num =int(input('请输入要生成的图片数量:100次\n'))# 提取的数量,尽量多一点刷100可能也只有8个图案
f=int(input('几份:2\n'))# 创建目录
output_dir = r'C:\Users\jg2yXRZ\OneDrive\桌面\数一数2\04自制框内不连接'
os.makedirs(output_dir, exist_ok=True)
# 统计每张图片出现的次数
image_count = {}
z='人物'pic_dir = fr'C:\Users\jg2yXRZ\OneDrive\桌面\数一数2\00幼儿图片\{z}'# 创建目录    end=output_dir+fr'\{pic_dir[-2:]}'
os.makedirs(end, exist_ok=True)    # 获取文件夹中的所有文件
file_list = os.listdir(pic_dir)# 过滤出图片文件
image_files = [file for file in file_list if file.endswith('.png') or file.endswith('.jpg') or file.endswith('.jpeg')]# 构建图片文件的完整路径
# # 自制图片路径
animal_paths = [os.path.join(pic_dir, file) for file in image_files]
print(len(animal_paths))# 0.1缩放比例的范围,从0.1-0.6,01-01生成图案最多,0,1-0,5因为有大图占满了,所以小图数量会很少
fw=[]
# 倒过来的数字,数字越大图案大,数量少,难度越低
for y in range(5,0,-1):fw.append(f'0.{y}')
print(fw)
# 提取的数量,尽量多一点刷100可能也只有8个图案nn=1
# 几份?
for ff in fw:    # 0.1-0.1print(f'0.1-{ff}')for ii in range(f):        # 生成2份print(f'第{ii+1}份')# 图形尺寸范围    size_range = (0.1, float(ff)) # 图片尺寸范围(相对于画布大小的比例)# 创建画布fig, ax = plt.subplots(figsize=(canvas_size, canvas_size))ax.set_xlim([0, canvas_size])ax.set_ylim([0, canvas_size])shapes = [] # 存储已生成的图形# 随机生成指定数量的动物图片# for ii in range(num):rtencent_dir = output_dir+r'\零时'os.makedirs(tencent_dir, exist_ok=True)# 统计每张图片出现的次数image_count = {}for i in range(num): # 随机抽取6张# 随机选择动物图片animal_path = random.choice(animal_paths)img = mpimg.imread(animal_path)img_height, img_width = img.shape[:2]# 随机确定图片的大小和位置size = random.uniform(size_range[0], size_range[1]) * canvas_sizeposition_x = random.uniform(0, canvas_size - size)position_y = random.uniform(0, canvas_size - size)# 检查图片是否与其他图片不相交shape = Polygon([(position_x, position_y),(position_x + size, position_y),(position_x + size, position_y + size),(position_x, position_y + size)])if not any(shape.intersects(s) for s in shapes):# 添加图片到画布ax.imshow(img, extent=[position_x, position_x + size, position_y, position_y + size])shapes.append(shape)# 统计图片出现的次数if animal_path in image_count:image_count[animal_path] += 1else:image_count[animal_path] = 1 # 隐藏坐标轴ax.axis('off')# 打印每张图片出现的次数print("图片统计:")for image_path, count in image_count.items():print(f"{image_path}: {count}")# 保存图形output_path = os.path.join(tencent_dir, f'{ii:02d}.png')plt.savefig(output_path, dpi=200, bbox_inches='tight')# import time# time.sleep(2)shapes.clear()# 暂停3秒time.sleep(1)import osimport shutil# 获取123文件夹中的所有文件files = os.listdir(tencent_dir)# 遍历文件夹中的文件source_file_path = ""target_file_path = ""for file in files:# 构建源文件路径和目标文件路径source_file_path = os.path.join(tencent_dir, file)file=f'{nn:02d}.png'target_file_path = os.path.join(end, file)nn+=1# 剪切文件到目标文件夹shutil.move(source_file_path, target_file_path)# 清空画布和图形列表ax.cla()shapes.clear()# 关闭画布plt.close(fig)# # 删除文件夹
import shutil
shutil.rmtree(tencent_dir)

 生成的数一数图片的保存位置(在代码里新建文件夹)

操作过程:

作品展示:

分析:

人物点数卡,有5位孩子选择,因为人物外形近似,加上还有图形为“0”的可能性,所以有一定错误率

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3016617.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

MahApps.Metro的MVVM模式介绍(一)

MahApps.Metro是一个开源的WPF (Windows Presentation Foundation) UI 控件库。它的特点有现代化设计、主题定制、响应式布局、内置控件。 而Mvvm模式的核心思想是将用户界面(View)与应用程序逻辑(ViewModel)分离,以实…

2024.1.1 IntelliJ IDEA 使用记录

2024.1.1 IntelliJ IDEA 使用记录 下载设置文件编码maven 配置 插件可以中文语言包安装lombok 插件Smart Tomcat ( 根据需要安装)Smart Tomcat 配置 项目导入java 设置maven 配置 项目运行SpringBoot 项目运行tomcat 运行 (根据需要)相关依赖添加运行配置 下载 IntelliJ IDEA …

Buuctf-Misc题目练习

打开后是一个gif动图,可以使用stegsolve工具进行逐帧看。 File Format:文件格式 Data Extract:数据提取 Steregram Solve:立体试图 可以左右控制偏移 Frame Browser:帧浏览器 Image Combiner:拼图,图片拼接 所以可以知道我们要选这个Frame Browser …

Petalinux的使用——定制Linux系统

文章目录 配置petalinux运行环境petalinux设计流程 配置petalinux运行环境 Petalinux的安装在文章Ubuntu镜像源的更改及其Petalinux的安装中已经介绍,下面介绍petalinux运行环境的配置过程。 进入到petalinux的安装路径下,使用下面的命令对petalinux的运…

基于vue.js+thymeleaf模板引擎+ajax的注册登陆简洁模板(含从零到一详细介绍)

文章目录 前言1、数据库准备2、工具类与相关基类使用2.1、工具类2.2、相关基类 3、web包目录说明4、注册功能设计(本文核心部分)4.1、注册页面设计4.2、注册逻辑设计 5、登陆功能设计5.1、登陆页面设计5.2、登陆逻辑设计 6、运行效果图 前言 大多数的网…

.双链表.

题目: 实现一个双链表,双链表初始为空,支持 55 种操作: 在最左侧插入一个数;在最右侧插入一个数;将第 k𝑘 个插入的数删除;在第 k𝑘 个插入的数左侧插入一个数&#xf…

四川景源畅信:抖音的运营策略有哪些?

在数字营销的大潮中,抖音以其巨大的用户基础和强大的传播力成为众多品牌和商家的必争之地。那么,抖音的运营策略有哪些呢?这个问题涉及到内容创作、用户互动、数据分析和品牌合作等多个方面。 一、内容创作与优化在抖音,内容是吸引用户的关键…

【牛客】[HNOI2003]激光炸弹

原题链接:登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 二维前缀和板题。 注意从(1,1)开始存即可,所以每次输入x,y之后,要x,y。 因为m的范围最大为…

python实验三 实现UDP协议、TCP协议进行服务器端与客户端的交互

实验三 实验题目 1、请利用生成器构造一下求阶乘的函数Factorial(),定义一个函数m(),在m()中调用生成器Factorial()生成小于100的阶乘序列存入集合s中,输出s。 【代码】 def factorial():n1f1while 1:​ f * n​ yield (f)​ n1…

栈的实现以及c语言解决括号匹配问题

一、栈的实现 1、头文件 typedef int STDataType; typedef struct Stack {STDataType* _a;int _top; // 栈顶int _capacity; // 容量 }Stack; // 初始化栈 void StackInit(Stack* ps); // 入栈 void StackPush(Stack* ps, STDataType data); // 出栈 void StackPop(S…

上位机图像处理和嵌入式模块部署(树莓派4b镜像烧录经验总结)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 陆陆续续也烧录了好多次树莓派的镜像了,这里面有的时候很快,有的时候很慢。特别是烧录慢的时候,也不知道是自己…

Partisia Blockchain 生态首个zk跨链DEX现已上线

在5月1日,由Partisia Blockchain与zkCross创建合作推出的Partisia zkCrossDEX在Partisia Blockchain生态正式上线。Partisia zkCrossDEX是Partisia Blockchain上重要的互操作枢纽,其融合了zkCross的zk技术跨链互操作方案,并利用Partisia Bloc…

Python批量计算多张遥感影像的NDVI

本文介绍基于Python中的gdal模块,批量基于大量多波段遥感影像文件,计算其每1景图像各自的NDVI数值,并将多景结果依次保存为栅格文件的方法。 如下图所示,现在有大量.tif格式的遥感影像文件,其中均含有红光波段与近红外…

pytest教程-39-钩子函数-pytest_runtest_setup

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了pytest_runtest_protocol钩子函数的使用方法,本小节我们讲解一下pytest_runtest_setup钩子函数的使用方法。 pytest_runtest_setup 钩子函数在每个测试用例的 setup 阶段被调用。这…

代码随想录算法训练营DAY44|C++动态规划Part6|完全背包理论基础、518.零钱兑换II、377. 组合总和 Ⅳ

文章目录 完全背包理论基础完全背包问题的定义与01背包的核心区别为什么完全背包的循环顺序可以互换?CPP代码 ⭐️518.零钱兑换II思路CPP代码 ⭐️377. 组合总和 Ⅳ思路CPP代码 扩展题 完全背包理论基础 卡码网第52题 文章链接:完全背包理论基础 视频链接…

练习题(2024/5/7)

1验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 …

互联网十万个为什么之什么是云计算

云计算是一种通过互联网提供计算资源和服务的技术。它允许用户随时随地访问和使用云平台上的数据、软件和硬件资源。在数字化时代,互联网已经成为基础设施。云计算使得数据中心能够像一台计算机一样去工作。通过互联网将算力以按需使用、按量付费的形式提供给用户&a…

城市二手房数据分析与房价预测

实现功能 数据分析 二手房价格-时间分析 二手房数量-时间分析 二手房分布-区域分析 二手房户型分析 二手房朝向分析 二手房价格-区域分析 二手房热词词云 房价预测 采用合适的算法模型,对模型进行评估。通过输入影响因素输出预测价格。 采用技术与框架 M…

【MM32F3270 Micropython】pwm输出

文章目录 前言一、PWM脉宽调制技术介绍二、machine.PWM 类2.1 machine.PWM 类的构造对象2.2 PWM 对象初始化2.3 关闭PWM设备2.4 设置pwm的周期2.5 设置占空比 三、pwm示例代码总结 前言 MicroPython是一种精简的Python 3编程语言实现,旨在在微控制器和嵌入式系统上…

从0到1提审苹果商店(appstore)上线一款新APP

本篇主要复盘和介绍一款APP如何从0到1上线到苹果商店,将我自己项目遇到的坑跟大家分享,希望能为同样做开发或者运营的你提供经验,少走弯路。 如果你是24年1月1日之后开始首次提审APP,还需要先将自己的APP在工信部备案,苹果后台增加了工信部备案号的填写,备案方法和经验如…