【教学类-59-】专注力视觉训练01(圆点百数图)

news2024/11/18 17:52:37

背景需求:

视觉训练的神奇效果,让你的宝贝成为焦点 - 小红书魔法视觉追踪-视觉训练—— 🔍视觉训练🔍 🔹想要提高宝宝的专注力,视觉训练是个绝佳方法! 🔹让宝宝仔细观察数字的路线,锻炼他们的视觉敏感度。 🔹在空白处填写数字,可根据线条的方向按顺序填写。 💡注意事项:引导宝宝一步一步进行,不要急于求成哦。 🔍视觉追踪能力🔍 🔹想让宝宝的视觉追踪能力更强?这里有个小技巧! 🔹让宝宝追踪图中数字的线条,提高他们的追踪能力。 🔹练习后,宝宝将变得更加敏锐,追踪能力也会有长足进步哦。 💡注意事项:适当调整难度,让宝宝充分体验追踪的乐趣。 🔍视觉线性空间感🔍 🔹想要培养宝宝的视觉线性空间感?这里有个妙招! 🔹让宝宝仔细观察数字的线条,理解线性空间感的变化。 🔹帮助宝宝感知线条的长度、方向和位置,提升他们的空间感知能力。 💡注意事项:让宝宝在放松愉快的状态下进行训练。 🎉快来试试这些训练方法吧!让宝宝的专注力更上一层楼!🎉 #儿童教育 #视觉训练 #数字敏感度 #视觉追踪能力 #线性空间感#不懂就问有问必答 #右脑开发 #注意力训练 #提高孩子学习的专注力 #孩子注意力不集中 #早期教育 #幼儿早教 #启蒙 #益智早教 #早教日常 #素材组 #专注力 #家庭教育 #儿童专注力训练 #游戏日常icon-default.png?t=N7T8https://www.xiaohongshu.com/discovery/item/661642dd000000001a01101d?secondshare=weixin&share_from_user_hidden=true&appuid=&apptime=1716809845

模仿以上样式制作10*10宫格的圆圈,随机生成一根线贯通所有的圆圈。并根据路线生成1-100的数字,随机空缺N个。

'''
目标:圆点百数图,线路随机
作者:AI对话大师 阿夏
日期:2024年5月29日
# 的代码基本上是正确的,我只进行了一些微小的调整。现在,无论S是奇数还是偶数,都可以成功生成图像。如果S是奇数,将会生成斜线路径,如果S是偶数,将会生成直线路径。请注意,由于路径的生成是随机的,每次运行代码,生成的路径都可能有所不同。
'''
import random
from PIL import Image, ImageDraw, ImageFont

path = r'C:\Users\jg2yXRZ\OneDrive\桌面\圆点百数图'
image_folder = path + r'\jpg'

max_attempts = 1000  # 最大尝试次数

for xx in range(10):
    s = 4
    
    k = int(s * s * 50 / 100) + 1
    number_list = list(range(1, s * s + 1))
    random_numbers = random.sample(number_list, k)
    result = [str('' if i + 1 in random_numbers else i + 1) for i in range(s * s)]

    width = 2100
    height = 2100
    image = Image.new('RGB', (width, height), color=(255, 255, 255))
    draw = ImageDraw.Draw(image)
    wide = 10

    # 如果宫格等于7-10,就150,否则就是200
    if s==6:
        dot_size = 200
    if s==5:
        dot_size = 250
    if s==4:
        dot_size =300
    if s==3:
        dot_size =350
    if s==2:
        dot_size =350
    else:
        dot_size = 150
    margin = 20
    dot_padding = int((width - 2 * margin - dot_size * s) / s)

    canvas_width = width - 2 * margin
    canvas_height = height - 2 * margin

    matrix_width = s * dot_size + (s - 1) * dot_padding
    matrix_height = s * dot_size + (s - 1) * dot_padding

    start_x = margin + (canvas_width - matrix_width) // 2
    start_y = margin + (canvas_height - matrix_height) // 2

    directions = [(0, 1), (1, 0), (0, -1), (-1, 0)]

    attempts = 0  # 当前尝试次数
    success = False  # 是否成功生成图像

    while attempts < max_attempts:
        start_point = (random.randint(0, s - 1), random.randint(0, s - 1))
        current_point = start_point
        visited_points = set([start_point])

        path = [start_point]

        def dfs():
            global current_point
            global visited_points
            global path

            if len(visited_points) == s * s:
                return True

            for direction in directions:
                neighbor_x = current_point[0] + direction[0]
                neighbor_y = current_point[1] + direction[1]
                neighbor = (neighbor_x, neighbor_y)

                if neighbor in visited_points:
                    continue

                if 0 <= neighbor_x < s and 0 <= neighbor_y < s:
                    visited_points.add(neighbor)
                    path.append(neighbor)
                    current_point = neighbor

                    if dfs():
                        return True

                    visited_points.remove(neighbor)
                    path.pop()
                    current_point = path[-1]

            return False

        if dfs():
            success = True
            break

        attempts += 1

    if success:
        font = ImageFont.truetype(r'C:\Windows\Fonts\simsun.ttc', 100)
        for i in range(len(path) - 1):
            if i < len(result) - 1:
                center_x1 = start_x + path[i][1] * (dot_size + dot_padding) + dot_size // 2
                center_y1 = start_y + path[i][0] * (dot_size + dot_padding) + dot_size // 2
                center_x2 = start_x + path[i + 1][1] * (dot_size + dot_padding) + dot_size // 2
                center_y2 = start_y + path[i + 1][0] * (dot_size + dot_padding) + dot_size // 2
                draw.line([(center_x1, center_y1), (center_x2, center_y2)], fill=(0, 0, 0), width=wide)

        for i in range(s):
            for j in range(s):
                center_x = start_x + j * (dot_size + dot_padding) + dot_size // 2
                center_y = start_y + i * (dot_size + dot_padding) + dot_size // 2

                draw.ellipse(
                    [
                        (center_x - dot_size // 2, center_y - dot_size // 2),
                        (center_x + dot_size // 2, center_y + dot_size // 2),
                    ],
                    fill=(255, 255, 255),
                    outline=(0, 0, 0),
                    width=wide,
                )

        # 给所有起始点添加数字1-35
        for i in range(len(result) - 1):
            center_x1 = start_x + path[i][1] * (dot_size + dot_padding) + dot_size // 2
            center_y1 = start_y + path[i][0] * (dot_size + dot_padding) + dot_size // 2
            center_x2 = start_x + path[i + 1][1] * (dot_size + dot_padding) + dot_size // 2
            center_y2 = start_y + path[i + 1][0] * (dot_size + dot_padding) + dot_size // 2

            number = result[i]
            text_width, text_height = draw.textsize(str(number), font=font)
            text_x = center_x1 - text_width // 2
            text_y = center_y1 - text_height // 2
            draw.text((text_x, text_y), str(number), font=font, fill=(0, 0, 0))

        # 给最后一个圆点坐标添加数字 36
        if len(result) == s * s:
            last_x = start_x + path[-1][1] * (dot_size + dot_padding) + dot_size // 2
            last_y = start_y + path[-1][0] * (dot_size + dot_padding) + dot_size // 2
            draw.ellipse(
                [
                    (last_x - dot_size // 2, last_y - dot_size // 2),
                    (last_x + dot_size // 2, last_y + dot_size // 2),
                ],
                fill=(255, 255, 255),
                outline=(0, 0, 0),
                width=wide,
            )

            text_width, text_height = draw.textsize(result[-1], font=font)
            text_x = last_x - text_width // 2
            text_y = last_y - text_height // 2
            draw.text((text_x, text_y), result[-1], font=font, fill=(0, 0, 0))

        image_path = image_folder + fr'\{xx:03d}.png'
        image.save(image_path)
    else:
        print(f'无法生成图像:s={s}')

结果:

一、s=2-6可以按照指定数量生成。

其中双数的线条是水平垂直,单数线条是水平垂直还有部分倾斜

10次里面6次生成失败(出现倾斜线条),4次生成顺利

二、s>7,,生成数量不稳定

结论:宫格数字大于7就很难生成指定的数量,需要反复运行,卡死后终止程序,再次运行,反复收集获得10宫格的图片

让孩子们写不同宫格的数字填空,然后涂上ABCDABCD、ABBABB……之类的样式

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

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

相关文章

PageHelper多数据源无法自动切换数据源问题解决

在使用PageHelper进行分页处理的过程中&#xff0c;通过配置autoRuntimeDialect: true发现&#xff0c;在执行MySQL分页处理后&#xff0c;继续执行SqlServer的分页&#xff0c;使用的仍然是MySQL的语法&#xff0c;PageHelper并没有进行自动切换数据源处理。 在查看源码的时候…

西湖大学提出AIGC检测框架,精准识别AI撰写的文稿

近年来人工智能技术突飞猛进&#xff0c;尤其是大语言模型的出现&#xff0c;让AI具备了创作文章、小说、剧本等内容的能力。 AI代写&#xff0c;已经逃不过老师、编辑、审稿人的火眼金睛了。但让AI仅改写部分片段&#xff0c;就安全了么&#xff1f; 针对检测AI改写的片段&a…

基于FMEA保证汽车电控系统的可靠性

随着汽车技术的飞速发展&#xff0c;电控系统已成为现代汽车的“大脑”&#xff0c;掌控着车辆的方方面面。然而&#xff0c;这一复杂的系统也面临着诸多潜在失效风险&#xff0c;如何确保汽车电控系统的可靠性&#xff0c;成为汽车制造业亟待解决的问题。幸运的是&#xff0c;…

设计模式 18 迭代器模式 Iterator Pattern

设计模式 18 迭代器模式 Iterator Pattern 1.定义 迭代器模式 (Iterator Pattern) 是一种行为型设计模式&#xff0c;它提供了一种访问集合元素的标准方法&#xff0c;而无需暴露集合的内部表示。 提供一种方法顺序访问一个聚合对象中的各个元素&#xff0c;而又不需要暴露该…

DiffBIR论文阅读笔记

这篇是董超老师通讯作者的一篇盲图像修复的论文&#xff0c;目前好像没看到发表在哪个会议期刊&#xff0c;应该是还在投&#xff0c;这个是arxiv版本&#xff0c;代码倒是开源了。本文所指的BIR并不是一个single模型对任何未知图像degradation都能处理&#xff0c;而是用同一个…

如何解压忘记了密码的加密zip压缩包?这两个方法收藏好!

加密是一种保护信息不被未经授权访问的重要手段。ZIP压缩包作为一种常见的文件压缩格式&#xff0c;zip文件加密是很多人都回去做的一件事情&#xff0c;那么zip加密文件如何解密&#xff1f;有几种方法可以解密呢&#xff1f;今天介绍几种方法给大家。 一、尝试常用密码 我们…

2.1色彩空间

色彩发送器 色彩认知 光源是出生点&#xff0c;光源发射出光线&#xff0c;光线通过直射反射折射等路径最终进入人眼。 但人眼接收到光线后&#xff0c;人眼的细胞产生了一系列化学反应。 由此把产生的信号传入大脑&#xff0c;最终大脑对颜色产生了认知感知。 光的要素 光…

如何让Google快速收录?

要让Google快速收录你的网站&#xff0c;可以考虑使用GSI服务&#xff0c;这是一种专门设计来加速网站被Google搜索引擎收录的服务&#xff0c;下面详细解释GSI服务的基本原理和具体好处&#xff1a; GSI服务通过一种名为GPC爬虫池的系统实现&#xff0c;这个系统是基于对Goog…

多条文本转二维码怎么做?一键批量建码的使用技巧

怎么快速的制作多条文本信息的二维码&#xff1f;随着二维码的广泛使用&#xff0c;现在很多内容都可以通过生成二维码扫码的方式来获取信息&#xff0c;其他文本二维码就是比较常用的一种类型。那么当需要将多条不同的文本内容每条单独生成二维码时&#xff0c;有什么方法可以…

python列表元素操作与函数应用详解

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、列表元素加一的实现方法 示例代码 二、列表生成式的简化操作 三、列表反转函数revers…

香橙派Orange AI Pro 初体验

什么是香橙派 &#xff1f; 香橙派&#xff08;Orange Pi&#xff09;是深圳市迅龙软件有限公司旗下的开源产品品牌。它专注于为全球个人和企业提供高性价比的开源硬件、开源软件以及OEM/ODM服务。香橙派已经迭代了30多款产品&#xff0c;形成了涵盖开源硬件、开源软件、开源芯…

22net冒泡排序与插入排序

冒泡排序 观看视频 【python练习题】每日一练_第八天_冒泡排序_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1QT4y197pa/?spm_id_from333.337.search-card.all.click&vd_source498ae9e9c7a8a7d16da872c9d74cdc38PS&#xff1a;视频中用的了numpy库&#xff0c;大…

电瓶车进电梯识别报警摄像机

随着电动车的普及&#xff0c;越来越多的人选择电动车作为出行工具。在诸多场景中&#xff0c;电梯作为一种常见的交通工具&#xff0c;也受到了电动车用户的青睐。然而&#xff0c;电动车进入电梯时存在一些安全隐患&#xff0c;为了提高电动车进电梯的安全性&#xff0c;可以…

国内加密软件排行榜,每一款加密软件都是精品

在数字化快速发展的今天&#xff0c;数据安全和隐私保护已成为企业和个人关注的焦点。加密软件作为保护数据安全的重要手段&#xff0c;其重要性日益凸显。以下是根据权威机构的评测和用户反馈&#xff0c;整理的国内加密软件排行榜及其特点概述。 1、加密软件安企神免费试用7天…

centos8系统如何安装宝塔面板

我这边购买了一台Hostease的VPS云主机产品&#xff0c;想要安装宝塔面板&#xff0c;但是我这边是安装时遇到错误&#xff0c;如图&#xff1a; 这边尝试检查了似乎时yum 有问题&#xff0c; 无法通过yum 安装。因此联系了Hostease技术人员帮助&#xff0c;他们告知自2022年1月…

Java基于saas模式云MES制造执行系统源码Spring Boot + Hibernate Validation什么是MES系统?

Java基于saas模式云MES制造执行系统源码Spring Boot Hibernate Validation 什么是MES系统&#xff1f; MES制造执行系统&#xff0c;通过互联网技术实现从订单下达到产品完成的整个生产过程进行优化管理。能有效地对生产现场的流程进行智能控制&#xff0c;防错防呆防漏&…

【NumPy】全面解析add函数:高效数组加法操作

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

字节跳动豆包大模型:领跑AI市场,打破价格壁垒

在人工智能飞速发展的今天&#xff0c;自然语言处理模型已成为科技进步的重要推动力。它们不仅在语言翻译、智能对话、情感分析等多个领域发挥着越来越重要的作用&#xff0c;更是引领着AI技术向前发展的潮流。然而&#xff0c;国产大模型市场参差不齐&#xff0c;价格差异巨大…

亚马逊云服务器会不会限制服务器使用?

亚马逊云服务器&#xff08;Amazon Web Services&#xff0c;AWS&#xff09;是全球领先的云计算服务提供商之一&#xff0c;其强大的基础设施和灵活的服务模式吸引了无数企业和个人用户。然而&#xff0c;许多人对于亚马逊云服务器是否会对服务器使用进行限制存在疑虑。我们九…

CyberLink ColorDirector Ultra v12 解锁版安装教程 (视频后期调色软件)

前言 CyberLink ColorDirector Ultra 是一款视频后期调色处理软件&#xff0c;可以给视频进行专业色彩调整&#xff0c;让视频看起来焕然一新。它支持的格式视频非常多&#xff0c;流行的格式全都可以添加到里面进行调色处理&#xff0c;主要是使用关键帧控件进行颜色替换&…