【教学类-64-03】20240611色块眼力挑战(三)-2-10宫格色差10-50(10倍)适合中班幼儿园(星火讯飞)

news2025/1/16 21:04:16

386c309275684491823fef6a89765d09.png

背景需求:

【教学类-64-02】20240610色块眼力挑战(二)-2-25宫格&色差10-100(10倍)(星火讯飞)-CSDN博客文章浏览阅读360次,点赞17次,收藏13次。【教学类-64-02】20240610色块眼力挑战(二)-2-25宫格&色差10-100(10倍)(星火讯飞)https://blog.csdn.net/reasonsummer/article/details/139572789

adbec9376a08475a8cd9df33016f74dc.png

 

通过观察,我觉得宫格数量不需要太大,色块太多,容易眼晕。(25宫格)

e7ac88012720475794d58f85c4e2860c.png

此外10-20的色差不容易分辨,30-100的色差对比都比较清楚,所以我只需要10-50的色差就可以了。

色差10

959156d7606046db8f41413dc75d84ac.png

色差50

f4c7283f27a041f1b2d6bea2a414fe7c.png

代码展示

1、色差范围从10-50

2、宫格数量从2-6

3、数量5张

'''
目的:不同的找不同色块小游戏(从2宫格-25宫格,色差从10,20^100)有提卡和答案,从难度1-10(难度1就是色差100,难度10是色彩10)
每种做5张,只要2-10宫格,色差从10-50(不容易看清)图片导入PPT
原作者:moyuweiqing
https://blog.csdn.net/moyuweiqing/article/details/134263628
改编:星火讯飞,阿夏
时间:2024年6月10日
'''

print('------1、图片和答案----------')
from PIL import Image, ImageDraw  # 导入PIL库中的Image和ImageDraw模块
import numpy as np  # 导入numpy库并简写为np
import random ,os # 导入random库

path = r'C:\Users\jg2yXRZ\OneDrive\桌面\辨认色彩图'
new_path=path+r'\02多张'  # 图片保存路径
os.makedirs(new_path,exist_ok=True)

z=5                             # 份数
start_grid_num = 2              # 开始的每行格子数
grid_num = start_grid_num       # 每次调用时候的每行格子数
size = 800                      # 画布的大小
margin = 2                      # 格子边缘大小
max_grid_num = 6             # 最大的每行格子数

# 色块颜色差
color_start=10                  # 起始的色块值(最小)
color_end=50                # 结束的色块值(最大)
color_gap=10                    # 最大最小色块值的间隔数量 如10个数字一次


# 开始的色块差,10的色块与其他底色相同,看不清清除,,100数字越大,对比越清晰,看的清除
start_color_gap = list(range(color_start,color_end+color_start, color_gap))    
# start_color_gap = list(range(100, 0, -10))      # 为了从简单(100)到难(10),数字翻过来

# 难度,从色块颜色差里提取
nd=list(range(int(color_end/color_gap),int(color_start/color_gap)-1,-int(color_gap/color_gap)))
# (10,0,-1)


print(start_color_gap)
min_color_gap = 5               # 最小色块差
color_list = []                 # 颜色列表
each_size = 0                   # 每块格子的大小
A = np.full((grid_num, grid_num), 0)    # 矩阵
max_color_gap = 25  

def get_random_position(length):
    random_x = random.randint(0, length - 1)  # 随机生成x坐标
    random_y = random.randint(0, length - 1)  # 随机生成y坐标
    return random_x, random_y

def change_color_from_rgb(rgb):
    return "#%02x%02x%02x" % (rgb[0], rgb[1], rgb[2])  # 将RGB颜色转换为十六进制颜色

def color_change():
    global color_list, color_gap
    color_list = []  # 清空颜色列表
    rgb_set1 = [random.randint(0, 255 - color_gap), random.randint(0, 255 - color_gap), random.randint(0, 255 - color_gap)]  # 生成第一个颜色的RGB值
    rgb_set2 = list((i + color_gap for i in rgb_set1))  # 生成第二个颜色的RGB值
    color_list.append(change_color_from_rgb(rgb_set1))  # 将第一个颜色添加到颜色列表中
    color_list.append(change_color_from_rgb(rgb_set2))  # 将第二个颜色添加到颜色列表中

    if color_gap > min_color_gap:
        color_gap -= 1  # 如果当前颜色间隔大于最小颜色间隔,则减小颜色间隔

if __name__ == '__main__': 
    for aa in range(z):    # 每个宫格2张
        for zz in range(len(start_color_gap)): 
            start_grid_num = 2              # 开始的每行格子数
            grid_num = start_grid_num       # 每次调用时候的每行格子数   
            for yy in range(start_grid_num, max_grid_num + 1): 
                color_gap = start_color_gap[zz]
                print(color_gap)
                A = np.full((grid_num, grid_num), 0)  # 重置二维数组
                each_size = size // grid_num  # 计算每个网格的尺寸
                s_x, s_y = get_random_position(grid_num)  # 获取随机位置
                A[s_x][s_y] = -1  # 将随机位置的值设为-1

                img1 = Image.new('RGB', (size, size), 'lightcyan')  # 创建一个新的图片对象
                img2 = Image.new('RGB', (size, size), 'lightcyan')  # 创建一个新的图片对象
                draw1 = ImageDraw.Draw(img1)  # 创建一个绘图对象
                draw2 = ImageDraw.Draw(img2)  # 创建一个绘图对象
                color_change()  # 改变颜色

                for i in range(0, grid_num):
                    for j in range(0, grid_num):
                        if A[i][j] == 0:
                            draw1.rectangle([i * each_size + margin, j * each_size + margin, (i + 1) * each_size - margin, (j + 1) * each_size - margin], fill=color_list[0])  # 绘制矩形并填充颜色
                            draw2.rectangle([i * each_size + margin, j * each_size + margin, (i + 1) * each_size - margin, (j + 1) * each_size - margin], fill=color_list[0])  # 绘制矩形并填充颜色
                        elif A[i][j] == -1:
                            draw1.rectangle([i * each_size + margin, j * each_size + margin, (i + 1) * each_size - margin, (j + 1) * each_size - margin], fill=color_list[1])  # 绘制矩形并填充颜色
                            draw2.rectangle([i * each_size + margin, j * each_size + margin, (i + 1) * each_size - margin, (j + 1) * each_size - margin], fill=color_list[1], outline='white', width=10)  # 绘制矩形并填充颜色,添加黑色边框

                if grid_num <= max_grid_num:
                    grid_num += 1  # 如果当前网格数量小于最大网格数量,则增加网格数量
                img1.save(new_path+fr'\难度{nd[zz]:02d}色彩间距{start_color_gap[zz]:03d}色块差{min_color_gap:03d}格子数{grid_num-1:02d}第{aa+1:03d}张_01试题.png')  # 保存图片
                img2.save(new_path+fr'\难度{nd[zz]:02d}色彩间距{start_color_gap[zz]:03d}色块差{min_color_gap:03d}格子数{grid_num-1:02d}第{aa+1:03d}张_02答案.png')  # 保存图片


print('------2、导入PPT----------')

import os
from pptx import Presentation
from pptx.util import Inches

# 创建一个新的PPT文件
ppt = Presentation()

# 设置PPT页面大小为800x800
ppt.slide_width = Inches(8)
ppt.slide_height = Inches(8)

# 获取123文件夹中的所有图片文件
image_folder = new_path
image_files = [f for f in os.listdir(image_folder) if f.endswith(('.png', '.jpg', '.jpeg', '.gif'))]

# 将图片批量导入到PPT中
for image_file in image_files:
    slide = ppt.slides.add_slide(ppt.slide_layouts[6])  # 添加一个空白幻灯片
    img_path = os.path.join(image_folder, image_file)
    left, top, width, height = Inches(0), Inches(0), Inches(8), Inches(8)
    slide.shapes.add_picture(img_path, left, top, width, height)

# 保存PPT文件
ppt.save(path+fr'\02色块小游戏(每种{z}张{start_grid_num}-{max_grid_num}).pptx')

import shutil
shutil.rmtree(new_path)

722d4dc441cd4fc4b8c4436c54b4afc7.png

色差50

f4e86504b6524cb195272d1f630c84b4.png

色差10

c709bb3d18f246bcb5ad09a5f0f8eff2.png宫格少一点,色差变化小一点(从10-100变成10-50),便于幼儿观察并说出色块方位(第X行第Y 个)

 

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

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

相关文章

34、matlab输入命令汇总

1、ans:最近计算的答案 代码示例1 12ans 3 代码示例2 Brand(7)B 列 1 至 60.7060 0.3171 0.1869 0.6797 0.5853 0.95930.0318 0.9502 0.4898 0.6551 0.2238 0.54720.2769 0.0344 0.4456 0.1626 0.7513 0.13860.0462 0.4387…

[大模型]GLM4-9B-chat Lora 微调

本节我们简要介绍如何基于 transformers、peft 等框架&#xff0c;对 LLaMA3-8B-Instruct 模型进行 Lora 微调。Lora 是一种高效微调方法&#xff0c;深入了解其原理可参见博客&#xff1a;知乎|深入浅出 Lora。 这个教程会在同目录下给大家提供一个 nodebook 文件&#xff0c…

python科研做图系列之时序图的绘制——对比折线图

参考知乎 折线图 我需要从两个不同的excel都读取第一列作为时间列,第二列作为编码列。 在同一张图上画出两条时间序列的折线图 横坐标是分钟,纵坐标是编码 帮我画的好看一些,记得解决中文乱码问题 英文版折线图 ,先搞个英文版,导师要求中文的话,再换成中文版 impor…

新技术前沿-2023-大模型学习根据个人数据集微调一个Transformer模型

参考如何根据自己的数据集微调一个 Transformer 模型 我们将通过NLP中最常见的文本分类任务来学习如何在自己的数据集上利用迁移学习(transfer learning)微调一个预训练的Transformer模型——DistilBERT。DistilBERT是BERT的一个衍生版本&#xff0c;它的优点在它的性能与BERT相…

区间预测 | Matlab实现GRU-ABKDE门控循环单元自适应带宽核密度估计多变量回归区间预测

区间预测 | Matlab实现GRU-ABKDE门控循环单元自适应带宽核密度估计多变量回归区间预测 目录 区间预测 | Matlab实现GRU-ABKDE门控循环单元自适应带宽核密度估计多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现GRU-ABKDE门控循环单元自适应…

沐风老师3DMAX一键多孔结构建模插件Porous使用方法

​3DMAX一键多孔结构建模插件Porous使用教程 3dMax是大家熟知的3D建模软件之一&#xff0c;其功能非常的强大&#xff0c;在科研绘图领域有着非常广泛的应用&#xff0c;但是由于科研绘图的图形&#xff08;模型&#xff09;一般都属于异形结构&#xff0c;手工绘制建模&#x…

Docker | 入门:原理探究

Docker | 入门&#xff1a;原理探究 Run 的运行流程 Docker 底层原理 Docker 是怎么工作的&#xff1f; Docker 是一个 Client-Server 结构的系统&#xff0c;Docker 的守护进程运行在主机上&#xff0c;通过 Socket 从客户端访问。DockerServer 接受到 Docker-Client 的指令…

linux centos如何安装python3版本但不能影响默认python2版本

在CentOS上安装Python3而不影响系统默认的Python2,具有如何安装呢? 1. 更新系统包 首先,确保系统包是最新的: sudo yum update -y2. 安装EPEL存储库 EPEL(Extra Packages for Enterprise Linux)存储库包含许多额外的软件包,包括Python3: sudo yum install epel-rel…

Android Studio Jellyfish版本修改project使用特定jdk版本的步骤

android studio总是把这些东西改来改去让人十分恼火&#xff0c;IDE本身改来改去就让人无法上手就立即工作&#xff0c;很多时间浪费在IDE和gradle的配置和奇奇怪怪现象的斗智斗勇上&#xff0c;搞Android是真的有点浪费生命。一入此坑深不见底 jellyfish版安卓studio已经无法通…

[Vue3:axios]:实现登录跳转页面展示列表(查看教师所承担课程的学生选课情况)

文章目录 一&#xff1a;前置操作项目结构&#xff1a; 二&#xff1a;登录页面主要流程说明运行截图前端代码Login.vue 三&#xff1a;列表页面交互逻辑&#xff1a;涉及页面Page02.vue &#xff08;登录成功跳转学生选课页面&#xff09;运行截图 一&#xff1a;前置操作 ht…

【Linux】进程间通信之命名管道

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

【PB案例学习笔记】-18制作一个IP地址编辑框

写在前面 这是PB案例学习笔记系列文章的第18篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

46-4 等级保护 - 网络安全等级保护概述

一、网络安全等级保护概述 原文:没有网络安全就没有国家安全 二、网络安全法 - 安全立法 中华人民共和国主席令 第五十三号 《中华人民共和国网络安全法》已于2016年11月7日由中华人民共和国第十二届全国人民代表大会常务委员会第二十四次会议通过,并自2017年6月1日起正式…

LabVIEW图像采集处理项目中相机选择与应用

在LabVIEW图像采集处理项目中&#xff0c;选择合适的相机是确保项目成功的关键。本文将详细探讨相机选择时需要关注的参数、黑白相机与彩色相机的区别及其适用场合&#xff0c;帮助工程师和开发者做出明智的选择。 相机选择时需要关注的参数 1. 分辨率 定义&#xff1a;分辨率…

C++ - Clion安装Qt msvc2017版本教程,基础环境配置clion+ Qt5.12.12 msvc2017 + VS2019

背景&#xff1a;平时代码开发使用clion&#xff0c;但使用项目要制定mscv2017版本Qt。先装过mingw版本Qt无法运行&#xff0c;但msvc版本依赖装有Visual Studio&#xff0c;本地装的又是2019版。就出现了这个大坑&#xff0c;需要配置好clion Qt msvc2017 VS2019。 文章目录 …

立创EDA专业版设置位号居中并调整字体大小

选择某一个器件位号&#xff0c;右键->查找&#xff1a; 选择查找全部&#xff1a; 下面会显示查找结果&#xff1a; 查看&#xff0c;所有的位号都被选中了&#xff1a; 然后布局->属性位置&#xff1a; 属性位置选择中间&#xff1a; 然后位号就居中了 调整字体大小&a…

串口通信技术基础

1.0 串口通信基础 数据通信的两种常用形式&#xff1a; 1&#xff1a;并行通信 和 串行通信 并行方式&#xff1a;数据的各位使用多条数据线同时发送或同时接收 特点&#xff1a;传送速度快&#xff0c;但因需要多根传输线&#xff0c;曾经在近距离、高速率通信中使用 串行方式…

01——生产监控平台——WPF

生产监控平台—— 一、介绍 VS2022 .net core(net6版本&#xff09; 1、文件夹&#xff1a;MVVM /静态资源&#xff08;图片、字体等&#xff09; 、用户空间、资源字典等。 2、图片资源库&#xff1a; https://www.iconfont.cn/ ; 1.资源字典Dictionary 1、…

验证码识别接口、多种样式验证码识别接口、中英文验证码识别接口

验证码识别接口、多种样式验证码识别接口、中英文验证码识别接口 本文提供一个基于OCR和机器学习的验证码识别接口&#xff0c;能够识别较复杂的中文、英文验证码&#xff0c;在OCR的基础上针对验证码进行算法优化。本接口是收费的&#xff08;最低0.5分1次调用&#xff0c;试…

【最新鸿蒙应用开发】——总结ArkUI生命周期

鸿蒙ArkUI相关的生命周期都有哪些? 1. UIAbility生命周期 onCreate、onWindowStageCreate、onForeground、onBackground、onWindowStageDestroy、onDestroy。 onCreate&#xff1a;Create状态为在应用加载过程中&#xff0c;UIAbility实例创建完成时触发&#xff0c;系统会调…