当前位置: 首页 > news >正文

应用高次、有理代数式为AI生成亚对称图像

原创:daode1212(daode3056)

        本文定义不完全对称的图像叫亚对称图像,因为全对称的太过机械,不符合人工的特点,本人基于二元高次的有理式,生成时引入N个随机数分A,B两个组,再通过指针对画布所有像素高速扫描生成三个类别的图像。这些奇异的图像、图案可广泛应用于纺织、工艺、陶瓷、铁艺、瓷砖等行业的图像自动生成,也为AI自动生成图像添加了新元素、新算法,截图如下:

C# 源代码如下:

// Asymmetric solution space (RGB, black and white, root curve).n344:
// By Daode3056, 2024-12-24
unsafe void button344_Click(object sender, EventArgs e)
{int ordeNum = 6; // The highest power of the polynomialint K = 40; // Refinement coefficientint width = 16 * K, height = 16 * K;Bitmap img = new Bitmap(width, height);float dlt = 1f / K; // Differential stepvar RD = new Random();string pStr = "";// Generate random arrays: ===================================  double[] A = new double[ordeNum]; double[] B = new double[ordeNum];for (int i = 0; i < ordeNum; i++){A[i] = 21 * RD.NextDouble();pStr += string.Format("{0:0.00}", A[i]) + "|";}pStr += "\r\n";for (int i = 0; i < ordeNum; i++){B[i] = 21 * RD.NextDouble();pStr += string.Format("{0:0.00}", B[i]) + "|";}// Define bitmap data, pointer object: =====================================BitmapData data = img.LockBits(new Rectangle(0, 0, width, height),ImageLockMode.ReadWrite,System.Drawing.Imaging.PixelFormat.Format24bppRgb);var ptr = (byte*)data.Scan0.ToPointer();// Binary high-order polynomial calculation function: =====================================Func<double, double, double> ploy = (double x, double y) =>{double xx = x * x; double yy = y * y;double fx = 1; double fy = 1;double retV = 0;//for (int i = 0; i < ordeNum; i++)//{//    fx *= (xx - A[i])*(y - A[i])/(x - A[i]);//    fy *= (yy - B[i])*(y - B[i])/(x - B[i]);//}for (int i = 0; i < ordeNum; i++){fx *= (y - A[i]) * (x - B[i]) * (xx - A[i]);fy *= (y - B[i]) * (x - A[i]) * (yy - B[i]);}if (fx != 0 && fy != 0){retV = x * fy / fx - y * y * fx / fy;}return Math.Abs(retV);};// Pointer operation, generate bitmap: ========================int idx = RD.Next(3);for (int i = 0; i < data.Height - 60; i++){for (int j = 0; j < data.Width; j++){float x = (i - width / 2 + 30) / (float)K;float y = (j - height / 2) / (float)K;//====================double z0 = Math.Log(ploy(x, y));if (idx == 0){// RGB image:if (z0 < 3){ptr[i * data.Stride + j * 3] = (byte)(127 - 127 * Math.Cos(z0 / 1.23));ptr[i * data.Stride + j * 3 + 1] = (byte)(127 + 127 * Math.Cos(z0 / 2.19));ptr[i * data.Stride + j * 3 + 2] = (byte)(127 + 127 * Math.Cos(z0 / 3.31));}}if (idx == 1){// Black and white image:if (z0 < 5){ptr[i * data.Stride + j * 3] = (byte)(127 + 127 * Math.Cos(z0) > 127 ? 255 : 0);ptr[i * data.Stride + j * 3 + 1] = (byte)(127 + 127 * Math.Cos(z0) > 127 ? 255 : 0);ptr[i * data.Stride + j * 3 + 2] = (byte)(127 + 127 * Math.Cos(z0) > 127 ? 255 : 0);}}if (idx == 2){// Equation root finding: ====================double z1 = ploy(x - dlt, y);double z2 = ploy(x + dlt, y);double z3 = ploy(x, y - dlt);double z4 = ploy(x, y + dlt);//=========================if (z1 * z2 < 100 || z3 * z4 < 100){ptr[i * data.Stride + j * 3] = (byte)(127 - 127 * Math.Cos(z0 / 137) > 127 ? 255 : 0);ptr[i * data.Stride + j * 3 + 1] = (byte)(127 - 127 * Math.Cos(z0 / 137) > 127 ? 255 : 0);ptr[i * data.Stride + j * 3 + 2] = (byte)(127 - 127 * Math.Cos(z0 / 137) > 127 ? 255 : 0);}else{ptr[i * data.Stride + j * 3] = (byte)255;ptr[i * data.Stride + j * 3 + 1] = (byte)255;ptr[i * data.Stride + j * 3 + 2] = (byte)255;}}}}img.UnlockBits(data);// Bitmap drawing tool:Graphics gs = Graphics.FromImage(img);Pen pen0 = new Pen(Color.FromArgb(0, 0, 60), 2);Brush bh = new SolidBrush(Color.White);gs.DrawString("["+idx+"]"+pStr, new Font("SimHei", 11), bh, 15 * K - pStr.Length * 5, height - 50);pictureBox1.Image = img;img.Save("button34_"+ string.Format("{0:X}",RD.Next(0xFFFFFF)) +".png");
}

相关文章:

应用高次、有理代数式为AI生成亚对称图像

原创&#xff1a;daode1212(daode3056) 本文定义不完全对称的图像叫亚对称图像&#xff0c;因为全对称的太过机械&#xff0c;不符合人工的特点&#xff0c;本人基于二元高次的有理式&#xff0c;生成时引入N个随机数分A,B两个组&#xff0c;再通过指针对画布所有像素高速扫描生…...

潜在狄利克雷分配LDA 算法深度解析

引言 潜在狄利克雷分配&#xff08;Latent Dirichlet Allocation, LDA&#xff09;是一种广泛应用于文本挖掘和信息检索领域的主题模型。它能够从文档集合中自动发现隐藏的主题结构&#xff0c;为理解大规模文本数据提供了强有力的工具。本文将着重讲解 LDA 的核心理论&#x…...

[x86 ubuntu22.04]双触摸屏的触摸事件都响应在同一个触摸屏上

1 问题描述 CPU&#xff1a;G6900E OS&#xff1a;ubuntu22.04 Kernel&#xff1a;6.8.0-49-generic 系统下有两个一样的 edp 触摸屏&#xff0c;两个触摸屏的触摸事件都响应在同一个 edp 屏幕上。 2 解决过程 使用“xinput”命令查看输入设备&#xff0c;可以看到只有一个 to…...

重温设计模式--代理模式

文章目录 定义UML图代理模式主要有以下几种常见类型&#xff1a;代理模式涉及的主要角色有&#xff1a;C 代码示例 定义 代理模式&#xff08;Proxy Pattern&#xff09;属于结构型设计模式&#xff0c;它为其他对象提供一种代理以控制对这个对象的访问。 通过引入代理对象&am…...

一些elasticsearch重要概念与配置参数

ES 是在 lucene 的基础上进行研发的&#xff0c;隐藏了 lucene 的复杂性&#xff0c;提供简单易用的 RESTful Api接口。ES 的分片相当于 lucene 的索引。 Node 节点的几种部署实例 实例一: 只用于数据存储和数据查询&#xff0c;降低其资源消耗率 node.master: false node.da…...

leetcode 面试经典 150 题:螺旋矩阵

链接螺旋矩阵题序号54题型二维数组&#xff08;矩阵&#xff09;解题方法模拟路径法难度中等熟练度✅✅✅ 题目 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3…...

JAVA AOP简单实践(基于SpringBoot)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…...

java agent的使用【通俗易懂版】

一、静态代理Agent 1&#xff0e;生成Agent的jar包 &#xff08;1&#xff09;创建Agent项目&#xff0c;引入javassist.jar包 &#xff08;2&#xff09;编写premain方法 import java.lang.instrument.Instrumentation;public class Agent1 {public static void premain(Stri…...

大模型学习指南

随着人工智能的迅猛发展&#xff0c;大模型成为了技术前沿的璀璨明星。踏入大模型学习领域&#xff0c;需要在多个关键方面下功夫。 扎实的数学功底是基石。线性代数为理解多维数据、矩阵运算提供支撑&#xff0c;像大模型中权重矩阵的处理就离不开它&#xff1b;概率论与数理…...

单片机:实现定时器中断(数码管读秒+LED闪烁)(附带源码)

单片机实现定时器中断&#xff1a;数码管读秒与LED闪烁 在单片机项目中&#xff0c;定时器中断是一个常见的应用&#xff0c;用于实现定时任务&#xff0c;例如定时更新显示或控制周期性事件。本文将介绍如何使用定时器中断实现数码管读秒和LED闪烁功能。通过使用定时器中断&a…...

STM32单片机芯片与内部33 ADC 单通道连续DMA

目录 一、ADC DMA配置——标准库 1、ADC配置 2、DMA配置 二、ADC DMA配置——HAL库 1、ADC配置 2、DMA配置 三、用户侧 1、DMA开关 &#xff08;1&#xff09;、标准库 &#xff08;2&#xff09;、HAL库 2、DMA乒乓 &#xff08;1&#xff09;、标准库 &#xff…...

【0376】Postgres内核 分配 last safe MultiXactId

上一篇: 【0375】Postgres内核 XLOG 之 设置下一个待分配 MultiXactId 和 offset 文章目录 1. 最后一个安全的 MultiXactId1.1 计算 multi wrap limit1.2 计算 multi stop limit1.3 计算 multi warn limit1.4 计算 multi vacuum limit2. 初始化 MultiXactState 成员3. 完成 mu…...

php时间strtotime函数引发的问题 时间判断出错

在 PHP 中&#xff0c;strtotime 函数能处理的最大时间范围取决于您的系统和 PHP 版本。 一般来说&#xff0c;它可以处理的时间范围从 1901 年 12 月 13 日到 2038 年 1 月 19 日。超过这个范围可能会导致不可预测的结果或错误。 如果您需要处理更大范围的时间&#xff0c;可能…...

Kibana:LINUX_X86_64 和 DEB_X86_64两种可选下载方式的区别

最近需要在vm&#xff08;操作系统是 Ubuntu 22.04.4 LTS&#xff0c;代号 Jammy。这是一个基于 x86_64 架构的 Linux 发行版&#xff09;上安装一个7.17.8版本的Kibana&#xff0c;并且不采用docker方式。 在下载的时候发现有以下两个选项&#xff0c;分别是 LINUX_X86_64 和 …...

【LeetCode每日一题】 LeetCode 151.反转字符串中的单词

LeetCode 151.反转字符串中的单词 题目描述 给你一个字符串 s &#xff0c;请你反转字符串中单词的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意&#xff1a;…...

gitlab克隆仓库报错fatal: unable to access ‘仓库地址xxxxxxxx‘

首次克隆仓库&#xff0c;失效了&#xff0c;上网查方法&#xff0c;都说是网络代理的问题&#xff0c;各种清理网络代理后都无效&#xff0c;去问同事&#xff1a; 先前都是直接复制的网页url当做远端url&#xff0c;或者点击按钮‘使用http克隆’ 这次对于我来说有效的远端u…...

在已有vue cli项目中添加单元测试配置

使用的是vue cli ^4.0.0的脚手架&#xff0c;项目采用的vue2进行编写&#xff0c;项目本身是没有使用单元测试的。应该挺多项目还是使用的vue2的项目进行开发的&#xff0c;自己在开发中过程中&#xff0c;还是发生了挺多需要记录原来功能的情况&#xff0c;这个时候去翻文档明…...

企业级NoSql数据库REDIS集群

1.1数据库主要分为两大类:关系型数据库与 NoSQL数据库 关系型数据库&#xff0c;是建立在关系模型基础上的数把库&#xff0c;其借助于集合代数等数学概念和方法来处理数据库中的数掘主流的 MySQLOracle、Ms sOLSerer和 DB2 都属于这类传统数据库 NoSQL数据库&#xff0c;全称…...

HTML与数据抓取:GET与POST方法详解

讲GET和POST就不能只讲GET和POST 你要讲HTTP请求的基本概念&#xff1a; HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是互联网上应用最为广泛的一种网络协议&#xff0c;主要用于Web浏览器与Web服务器之间的数据通信。HTTP是一个基于…...

【es6复习笔记】模板字符串(3)

介绍 模板字符串是 ES6 引入的一种新的字符串声明方式&#xff0c;它使用反引号&#xff08;&#xff09;来定义字符串&#xff0c;而不是单引号&#xff08;&#xff09;或双引号&#xff08;"&#xff09;。模板字符串可以包含变量、表达式和换行符&#xff0c;这使得它…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...