当前位置: 首页 > 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;这使得它…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...