【教学嘞-64-01】20240607颜色找茬-0-255随机底色

news2025/1/13 7:44:05

背景需求

AI对话大师到期了,后续无法使用了,这是我用AI对话大师写的最后一个代码

a375d26c4f28401c963a6b43287bd7ed.png

代码展示

'''
颜色找茬:找出不同颜色的色块
AI对话大师,阿夏
2025年6月7日
'''
from PIL import Image, ImageDraw
import random

path = r'C:\Users\jg2yXRZ\OneDrive\桌面\辨认色彩图'
for xx in range(10000):
    

    r = random.randint(0, 255)
    g = random.randint(0, 255)
    b = random.randint(0, 255)
    fill_color = (r, g, b)
   
    print(fill_color)
    a=random.randint(0,100)
    r1=r+a
    g1=g+a
    b1=b+a
    fill_color2=(r1, g1, b1)
    print(fill_color2)
    

    # 定义画布尺寸和边距
    canvas_width = 800
    canvas_height = 800
    margin = 50
    spacing = 20

    g = 5

    # 计算单元格的大小和间距
    cell_size = int((canvas_width - 2 * margin - (g - 1) * spacing) / g)

    # 创建画布
    canvas = Image.new('RGB', (canvas_width, canvas_height), 'white')
    draw = ImageDraw.Draw(canvas)

    # 随机选择一个单元格填充随机颜色
    random_row = random.randint(0, g - 1)
    random_col = random.randint(0, g - 1)

    

    # 绘制单元格
    for i in range(g):
        for j in range(g):
            
            x = margin + (cell_size + spacing) * j
            y = margin + (cell_size + spacing) * i
            if i == random_row and j == random_col:
                fill_color = (r1, g1, b1)
            else:
                fill_color = (r, g, b)
            draw.rectangle((x, y, x + cell_size, y + cell_size), fill=fill_color)

    # 保存图片
    canvas.save(path + fr'\{xx:05d}.png')

89c40826f3f1441390d9a5ab4f6df9b3.png

手动删除一些不是相近色的图案,随机生成底色

3a8ae9453e4c4e46a569a3585937761d.png

保留色相相近的图案a49cfb74f54a4f9dbfc3412ae32568cd.png

分类成两类

67288f0f4f334a7cb6dad747112e8904.png

低难度的色块颜色对比强烈

4752df73d97f4d1e8a2f7960cdc8e1a8.png高难度的色块对比不明显

04d44f57be72447799fbc4e92bf9c660.png

但是我感觉我自己都看不清不同的色块在哪里?所以我需要做一个有答案的版本。

from PIL import Image, ImageDraw
import random
import os

path = r'C:\Users\jg2yXRZ\OneDrive\桌面\辨认色彩图'
t = ['01题目卡', '02答案卡']
tm = []
for tt in t:
    os.makedirs(path + fr'\{tt}', exist_ok=True)
    tm.append(path + fr'\{tt}')
print(tm)

for xx in range(500):
    # 不要(0,0,0)黑色,不要255,255,255白色
    r = random.randint(1, 255)
    g = random.randint(1, 255)
    b = random.randint(1, 255)
    fill_color = (r, g, b)
    print(fill_color)
    a = random.randint(0, 255)
    r1 = r + a
    g1 = g + a
    b1 = b + a
    fill_color2 = (r1, g1, b1)
    print(fill_color2)

    # 定义画布尺寸和边距
    canvas_width = 800
    canvas_height = 800
    margin = 50
    spacing = 20
    g = 5

    # 计算单元格的大小和间距
    cell_size = int((canvas_width - 2 * margin - (g - 1) * spacing) / g)

    # 创建画布
    canvas1 = Image.new('RGB', (canvas_width, canvas_height), 'white')
    draw1 = ImageDraw.Draw(canvas1)

    canvas2 = Image.new('RGB', (canvas_width, canvas_height), 'white')
    draw2 = ImageDraw.Draw(canvas2)

    # 随机选择一个单元格填充随机颜色
    random_row = random.randint(0, g - 1)
    random_col = random.randint(0, g - 1)

    # 绘制单元格
    for i in range(g):
        for j in range(g):
            x = margin + (cell_size + spacing) * j
            y = margin + (cell_size + spacing) * i
            if i == random_row and j == random_col:
                fill_color = (r1, g1, b1)
                outline_color = 'black'  # 添加黑色边框
            else:
                fill_color = (r, g, b)
                outline_color = None  # 不添加边框
            draw1.rectangle((x, y, x + cell_size, y + cell_size), fill=fill_color) 
            draw2.rectangle((x, y, x + cell_size, y + cell_size), fill=fill_color, outline=outline_color, width=20)
          
    # 保存图片
    canvas1.save(tm[0] + fr'\{xx:05d}-01图卡.png')
    canvas2.save(tm[0] + fr'\{xx:05d}-02答案.png')

a7962d3164db4788ac48df6c6fd3971a.png4c5a5cfafcf7412db35d903a2d63e1f1.png

黑色底色的就看不见了

205b33107784489580eaa38e0b8d0d74.png

改成白色边框

5695ca3b19724ec48545df99309374aa.png

from PIL import Image, ImageDraw
import random
import os

path = r'C:\Users\jg2yXRZ\OneDrive\桌面\辨认色彩图'
t = ['01题目卡', '02答案卡']
tm = []
for tt in t:
    os.makedirs(path + fr'\{tt}', exist_ok=True)
    tm.append(path + fr'\{tt}')
print(tm)

for xx in range(500):
    # 不要(0,0,0)黑色,不要255,255,255白色
    r = random.randint(1, 255)
    g = random.randint(1, 255)
    b = random.randint(1, 255)
    fill_color = (r, g, b)
    print(fill_color)
    a = random.randint(0, 255)
    r1 = r + a
    g1 = g + a
    b1 = b + a
    fill_color2 = (r1, g1, b1)
    print(fill_color2)

    # 定义画布尺寸和边距
    canvas_width = 800
    canvas_height = 800
    margin = 50
    spacing = 20
    g = 5

    # 计算单元格的大小和间距
    cell_size = int((canvas_width - 2 * margin - (g - 1) * spacing) / g)

    # 创建画布
    canvas1 = Image.new('RGB', (canvas_width, canvas_height), 'white')
    draw1 = ImageDraw.Draw(canvas1)

    canvas2 = Image.new('RGB', (canvas_width, canvas_height), 'white')
    draw2 = ImageDraw.Draw(canvas2)

    # 随机选择一个单元格填充随机颜色
    random_row = random.randint(0, g - 1)
    random_col = random.randint(0, g - 1)

    # 绘制单元格
    for i in range(g):
        for j in range(g):
            x = margin + (cell_size + spacing) * j
            y = margin + (cell_size + spacing) * i
            if i == random_row and j == random_col:
                fill_color = (r1, g1, b1)
                outline_color = 'white'  # 添加黑色边框
            else:
                fill_color = (r, g, b)
                outline_color = None  # 不添加边框
            draw1.rectangle((x, y, x + cell_size, y + cell_size), fill=fill_color) 
            draw2.rectangle((x, y, x + cell_size, y + cell_size), fill=fill_color, outline=outline_color, width=10)
          
    # 保存图片
    canvas1.save(tm[0] + fr'\{xx:05d}_01图卡.png')
    canvas2.save(tm[0] + fr'\{xx:05d}_02答案.png')

632a3ceb68c6412399e7293c4ce8403c.png

同样手动不是相近色的

为了生成足够多的,我先生成10000张

228f641057a04b559e8b61b2415c062e.png

生成了20分钟,一共2万张。

bbcdb6afc75d4464aa9ebdd443e94724.png

57bc09020aca4c5fae375a96e3038958.png1-255随机颜色下,底色只有红、紫色、蓝、黑,8079b3274e0f4d93acba399840b74412.png

调整了一下顺序,底色就有很多种了

就是红橙黄绿青蓝紫黑灰色都有了

代码展示

'''
目的:色块找茬
工具:AI对话大师(最后一天到期了不能使用了),阿夏(
时间:2024年6月7日
'''


from PIL import Image, ImageDraw
import random
import os

path = r'C:\Users\jg2yXRZ\OneDrive\桌面\辨认色彩图'
t = ['01题目卡', '02答案卡']
tm = []
for tt in t:
    os.makedirs(path + fr'\{tt}', exist_ok=True)
    tm.append(path + fr'\{tt}')
print(tm)

for xx in range(10000):
    # 不要(0,0,0)黑色,不要255,255,255白色
    r = random.randint(1, 254)
    g = random.randint(1, 254)
    b = random.randint(1, 254)
    fill_color = (r, g, b)
    print(fill_color)
    a = 80
    # random.randint(100)
    r1 = r 
    g1 = g 
    b1 = b + a
    fill_color2 = (r1, g1, b1)
    print(fill_color2)

    # 定义画布尺寸和边距
    canvas_width = 800
    canvas_height = 800
    margin = 50
    spacing = 20
    g = 5

    # 计算单元格的大小和间距
    cell_size = int((canvas_width - 2 * margin - (g - 1) * spacing) / g)

    # 创建画布
    canvas1 = Image.new('RGB', (canvas_width, canvas_height), 'white')
    draw1 = ImageDraw.Draw(canvas1)

    canvas2 = Image.new('RGB', (canvas_width, canvas_height), 'white')
    draw2 = ImageDraw.Draw(canvas2)

    # 随机选择一个单元格填充随机颜色
    random_row = random.randint(0, g - 1)
    random_col = random.randint(0, g - 1)

    # 绘制单元格
    for i in range(g):
        for j in range(g):
            x = margin + (cell_size + spacing) * j
            y = margin + (cell_size + spacing) * i
            if i == random_row and j == random_col:
                fill_color = (r, g, b)
                outline_color = 'white'  # 添加黑色边框
            else:
                fill_color = (r1, g1, b1)
                outline_color = None  # 不添加边框
            draw1.rectangle((x, y, x + cell_size, y + cell_size), fill=fill_color) 
            draw2.rectangle((x, y, x + cell_size, y + cell_size), fill=fill_color, outline=outline_color, width=10)
          
    # 保存图片
    canvas1.save(tm[0] + fr'\{xx:05d}_01图卡.png')
    canvas2.save(tm[0] + fr'\{xx:05d}_02答案.png')

不过还是要手动选图,10000张也够累的!

我先按照底色的色系分一下

每天分类一点吧,

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

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

相关文章

vite常识性报错解决方案

1.导入路径不能以“.ts”扩展名结束。考虑改为导入“xxx.js” 原因:当你尝试从一个以 .ts 结尾的路径导入文件时,ESLint 可能会报告这个错误,因为它期望导入的是 JavaScript 文件(.js 或 .jsx)而不是 TypeScript 文件&…

毫米波雷达深度学习技术-1.6目标识别2

1.6.4 自动编码器和变体自动编码器 自编码器包括一个编码器神经网络,随后是一个解码器神经网络,其目的是在输出处重建输入数据。自动编码器的设计在网络中施加了一个瓶颈,它鼓励原始输入的压缩表示。通常,自编码器旨在利用数据中的…

cleanmymacx最新破解版百度云免费下载 cleanmymac激活码分享

CleanMyMac X4.15.3 中文破解版是一款 mac 系统清理软件,是一款专业的 Mac 清理、优化和维护工具,可以帮助用户清理系统垃圾、卸载不需要的应用程序、优化系统性能、保护隐私和安全等,让用户的 Mac 始终保持高效、安全和稳定。 CleanMyMac X4…

[经验] 涠洲岛在广西吗 #职场发展#知识分享#媒体

涠洲岛在广西吗 广西涠洲岛,是中国南海上的一颗闪亮明珠,位于广西北部湾沿海,东经108.71度,北纬21.54度,距离北海市区30公里,是中国最大的海岛之一,风景秀丽,气候温和。岛上山青水秀…

【进阶篇-Day2:JAVA包、抽象类、接口、多态】

目录 1、包2、抽象类2.1 抽象类的定义2.2 抽象类的注意事项2.3 abstract关键字的冲突 3、接口3.1 接口的介绍3.2 接口中的成员特点3.2.1 接口中的成员特点3.2.2 类和接口之间的各种关系 3.3 抽象类和接口的对比 4、多态4.1 多态的介绍4.2 多态的前提4.3 多态的成员访问特点4.4 …

Java线程本地变量ThreadLocal

ThreadLocal ThreadLocal有什么用 通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。如果想实现每一个线程都有自己的专属本地变量该如何解决呢? JDK中的ThreadLocal类正是为了解决这样的问题,ThreadLocal类主要解决的就是让每…

SpringBoot+Vue网上购物商城系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 系统角色对应功能 用户商家管理员 系统功能截图

测试基础11:测试用例设计方法-等价类划分

课程大纲 1、概述 1.1测试用例设计方法意义 穷举测试:每种输入都测一次。最完备,但不现实。 使用设计方法,用最少的数据(成本),实现最大的测试覆盖。 1.2常用设计方法 ①等价类划分 ②边界值分析 ③错误推…

vue3自定义组件并全局导入

自定义组件&#xff1a;幕布 涉及的效果&#xff1a;点击出现幕布并且内容可变动 使用的技术&#xff1a;vue3的slot componentcomponents curtain&#xff08;组件页面&#xff09;&#xff1a; <template><div class"curtain"><slot></s…

在UI界面中实现3d人物展示

简要原理(设置双摄像机): 为需要展示的3D人物单独设置一个摄像机(只设置为渲染人物层级),主要摄像机的方向与人物方向一致,但摄像机需要需要旋转180,设置的角度自行进行微调创建一个Render Texture类型的组件用于存储摄像机渲染的内容UI上设置需要展示的图片区域,图片…

线性表和链表

一&#xff0c;线性结构 1.Array Array文档&#xff1a;可以自行阅读相关文档来了解Array class array.array(typecode[, initializer]) array.append(x)&#xff1a;添加元素到数组末尾 array.count(x)&#xff1a;计算元素出现次数 array.extend(iterable)&#xff1a;将迭代…

ipables防火墙

一、Linux防火墙基础 Linux 的防火墙体系主要工作在网络层&#xff0c;针对 TCP/IP 数据包实施过滤和限制&#xff0c;属于典 型的包过滤防火墙&#xff08;或称为网络层防火墙&#xff09;。Linux 系统的防火墙体系基于内核编码实现&#xff0c; 具有非常稳定的性能和高效率&…

SpringBoot的Mapper文件什么时候需要使用@Param注解

解决&#xff1a;nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘XXX‘ not found 关于加注解&#xff0c;其他博客说的很清楚&#xff01;但是有的人会遇见明明使用的springboot2.x以上版本&#xff0c;仍然提示需要加注解&#xff01;这是为…

SQL Server设置默认Schema (修正运行版)

目录 方法 1&#xff1a;执行 USE 命令 方法 2&#xff1a;执行 ALTER USER 命令 方法 3&#xff1a;在查询中包含Schema 总结 在 SQL Server 中&#xff0c;通过 JDBC 设置会话的默认Schema并不是很直接&#xff0c;但可以使用一些变通方法来实现。以下是一些管理默认Sche…

sub_mch_id 与 sub_appid 不匹配怎么解决

小程序在支付的时候&#xff0c;有时候会碰到&#xff1a;sub_mch_id 与 sub_appid 不匹配的问题。这个问题意味着小程序微信支付时所使用的 sub_mch_id&#xff08;子商户号&#xff09;和 sub_appid&#xff08;小程序的appId&#xff09;不对应。下面就具体介绍如何核对是否…

解决 There is no getter for property named ‘null‘ in ‘class 报错

1. 问题 mybatis-plus在更新删除操作时报错 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession750ee72a] 2024-06-08 21:03:07 [http-nio-8080-exec-3] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servl…

Kubernetes 基础架构最佳实践:从架构设计到平台自动化

本文探讨了如何将DigitalOcean Kubernetes (DOKS)应用于生产环境&#xff0c;并提供实现生产准备&#xff08;production readiness&#xff09;的指导。 规划您的基础架构 Kubernetes 基础架构的规划至关重要&#xff0c;因为它为稳定且可扩展的应用部署平台奠定了基础。通过适…

Python采集东方财富网股票数据建立LSTM模型预测

Python采集东方财富网股票数据建立LSTM模型预测 一、数据爬取流程二、爬虫完整代码三、LSTM模型建模预测3.1 项目背景3.2 建模预测流程3.3 数据预处理3.4 数据可视化3.5 特征工程3.6 数据缩放3.7 数据转换3.8 模型创建3.9 评价模型3.10 可视化结果3.11 总结一、数据爬取流程 先…

107.网络游戏逆向分析与漏洞攻防-装备系统数据分析-装备信息更新的处理

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 现在的代码都是依据数据包来写的&#xff0c;如果看不懂代码&#xff0c;就说明没看懂数据包…

实战 | 通过微调SegFormer改进车道检测效果(数据集 + 源码)

背景介绍 SegFormer&#xff1a;实例分割在自动驾驶汽车技术的快速发展中发挥了关键作用。对于任何在道路上行驶的车辆来说&#xff0c;车道检测都是必不可少的。车道是道路上的标记&#xff0c;有助于区分道路上可行驶区域和不可行驶区域。车道检测算法有很多种&#xff0c;每…