【教学类-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://www.mzph.cn/bicheng/7689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

皮秒激光切割机可以切割材料及主要应用行业

皮秒激光切割机可以切割多种材料,主要应用行业包括但不限于: 1. PCB板行业:主要用于PCB激光分板,如FR4、补强钢片、FPC、软硬结合板、玻纤板等材料的紫外激光切割。 2. 薄膜材料切割:皮秒紫外激光切割机可以直接切割薄…

启英泰伦“离线自然说”技术,让智能语音芯片更善解人意

“以科技创新推动产业创新,特别是以颠覆性技术和前沿技术催生新产业、新模式、新动能,发展新质生产力”。2023年12月,中央经济工作会议强调了发展新质生产力的路径。“科技创新是发展新质生产力的核心要素,这也是我们一直潜心在做…

解决Pyppeteer下载chromium慢或者失败的问题[INFO] Starting Chromium download.

文章目录 1.进入网址2.选择上面对应自己系统的文件夹进去3. 然后找到自己的python环境中的site-packages中pyppeteer中的chromium_downloader.py文件并打开 在首次使用Pyppeteer时需要下载chromium 1.进入网址 https://registry.npmmirror.com/binary.html?pathchromium-bro…

07_Flutter使用NestedScrollView+TabBarView滚动位置共享问题修复

07_Flutter使用NestedScrollViewTabBarView滚动位置共享问题修复 一.案发现场 可以看到,上图中三个列表的滑动位置共享了,滑动其中一个列表,会影响到另外两个,这显然不符合要求,先来看下布局,再说明产生这个…

【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编程语言实现,旨在在微控制器和嵌入式系统上…

算法分析 KMP算法中next值的计算、0/1背包问题

5.6.1 KMP算法中next值的计算 设模式的长度为m。用蛮力法求解 KMP算法中的 next值时&#xff0c;next[0]可直接给出&#xff0c;计算next[j](1<j<m-1)则需要在 T[0] …T[j-1]中分别取长度为j-1、..、2、1的真前缀和真后缀并比较是否相等&#xff0c;最坏情况下的时间代价…

解析Linux键盘组合键产生信号的完整过程:从硬件中断到信号发送

前言 每一个了解Linux的都知道这样一个知识&#xff0c;CtrlC组合键能够终止一个进程。 个人了解进程相关知识之后知道&#xff0c;一个进程被终止只会有有三种情况&#xff1a; 代码运行完毕&#xff0c;结果正确代码运行完毕&#xff0c;结果不正确代码运行异常&#xff…

鸿蒙OpenHarmony【基于Hi3516DV300开发板(时钟应用开发)】

概述 本文将介绍如何快速搭建基于OpenHarmony标准系统&#xff08;Hi3516DV300开发板&#xff09;的应用开发环境&#xff0c;并基于一个时钟APP示例逐步展示应用的创建、开发、调试和安装等流程。示例代码可以通过本链接获取。 时钟App是一款显示实时时间的应用&#xff0c;…

【GDPU】数据结构实验十 哈夫曼编码

【实验内容】 1、假设用于通信的电文仅由8个字母 {a, b, c, d, e, f, g, h} 构成&#xff0c;它们在电文中出现的概率分别为{ 0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10 }&#xff0c;试为这8个字母设计哈夫曼编码。 提示:包含两个过程:&#xff08;1&#xff09;构建…

【iOS】——浅析CALayer

文章目录 一、CALayer介绍二、UIview与CALayer1.区别2.联系 三、CALayer的使用1.初始化方法2.常用属性 四.CALayer坐标系1.position属性和anchorPoint属性2.position和anchorPoint的关系3.position、anchorPoint和frame的关系 五、CALayerDelegate六、CALayer绘图机制1.绘图流程…

利用Jenkins完成Android项目打包

问题和思路 目前存在的问题 打包操作由开发人员完成&#xff0c;这样开发进度容易被打断。 解决问题的思路 将打包操作交测试/产品/开发人员来完成&#xff0c;主要是测试/开发。 按照以上的思路&#xff0c;那么JenkinsGradle的解决方案是比较经济的&#xff0c;实现起来…

鸿蒙内核源码分析(互斥锁篇) | 互斥锁比自旋锁丰满多了

内核中哪些地方会用到互斥锁?看图: 图中是内核有关模块对互斥锁初始化,有文件,有内存,用消息队列等等,使用面非常的广.其实在给内核源码加注的过程中,会看到大量的自旋锁和互斥锁,它们的存在有序的保证了内核和应用程序的正常运行.是非常基础和重要的功能. 概述 自旋锁 和…

5.7 线程

进程&#xff1a;解耦稳定&#xff0c;内容之间是不相关的&#xff0c;通信不便利&#xff0c;理论上进程的软硬件的切换时间以及创建开销非常大。--------》资源共享线程实现 线程的问题&#xff1a;本质就是不解耦&#xff0c;一个出问题别的就很有可能出问题&#xff0c;同…

Scanner中next()、nextInt()、nextLine()、hasNext()、hasNextInt()的使用方法及注意事项

目录 1、next()、nextInt()、nextLine()的使用方法及区分 2、循环时如何使用hasNext方法 3、用hasNextInt()作为判断下一个输入是否为数字需要配合next()方法使用 1、next()、nextInt()、nextLine()的使用方法及区分 三者简单定义 next()&#xff1a;此方法遇见第一个有效字符…

使用AIGC生成软件类图表

文章目录 如何使用 AI 生成软件类图表什么是 MermaidMermaid 的图片如何保存&#xff1f;mermaid.liveDraw.io Mermaid可以画什么图&#xff1f;流程图时序图 / 序列图类图状态图甘特图实体关系图 / ER图 如何使用 AI 生成软件类图表 ChatGPT 大语言模型不能直接生成各类图表。…

linux系统下产生Segmentation fault 与 Segmentation fault (core dumped)!!!

最近在学习的过程中&#xff0c;遇到了Segment fault&#xff08;段错误&#xff09;的问题&#xff0c;经过一番查找资料&#xff0c;学到了一些相关知识&#xff0c;这里做一个梳理&#xff0c;以防以后在遇到类似的问题&#xff0c;并且希望能够帮助到大家一丝丝&#xff01…

python中numpy库使用

array数组 生成array数组 将list转化为array数组 import numpy as np np.array([1,2],typenp.int32)其中dtype定义的是元素类型&#xff0c;np.int32指32位的整形 如果直接定义dtypeint 默认的是32位整形。 zeors和ones方法 zeros()方法&#xff0c;该方法和ones()类似&a…

有什么方便实用的成人口语外教软件?6个软件教你快速进行口语练习

有什么方便实用的成人口语外教软件&#xff1f;6个软件教你快速进行口语练习 口语能力在语言学习中占据着重要的位置&#xff0c;因为它直接关系到我们与他人进行交流和沟通的效果。为了提高口语能力&#xff0c;很多成人选择通过外教软件进行口语练习&#xff0c;这些软件提供…

GNU Radio FFT模块结合stream to vector应用及Rotator频偏模块使用

文章目录 前言一、FFT 模块应用1、stream to vector 介绍2、创建 grc 图测试3、运行结果 二、频偏模块1、Rotator 简介2、创建 grc 图测试3、运行结果 前言 写个博客记录一下自己的蠢劲儿&#xff0c;之前我想用 FFT 模块做一些信号分析的东西&#xff0c;官方的 FFT 模块必须…

营销5.0时代,企业的痛如何解?

进入营销5.0阶段之后&#xff0c;许多企业都需解决连接客户效能低下的问题。针对这个问题&#xff0c;产品经理、软件开发公司包括个人开发者&#xff0c;要怎么找到有效的“解药”&#xff1f; 营销不仅每年都在变化&#xff0c;甚至每天都在变化。 ——现代营销学之父&…