应用高次、有理代数式为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生成亚对称图像
原创:daode1212(daode3056) 本文定义不完全对称的图像叫亚对称图像,因为全对称的太过机械,不符合人工的特点,本人基于二元高次的有理式,生成时引入N个随机数分A,B两个组,再通过指针对画布所有像素高速扫描生…...
潜在狄利克雷分配LDA 算法深度解析
引言 潜在狄利克雷分配(Latent Dirichlet Allocation, LDA)是一种广泛应用于文本挖掘和信息检索领域的主题模型。它能够从文档集合中自动发现隐藏的主题结构,为理解大规模文本数据提供了强有力的工具。本文将着重讲解 LDA 的核心理论&#x…...
[x86 ubuntu22.04]双触摸屏的触摸事件都响应在同一个触摸屏上
1 问题描述 CPU:G6900E OS:ubuntu22.04 Kernel:6.8.0-49-generic 系统下有两个一样的 edp 触摸屏,两个触摸屏的触摸事件都响应在同一个 edp 屏幕上。 2 解决过程 使用“xinput”命令查看输入设备,可以看到只有一个 to…...
重温设计模式--代理模式
文章目录 定义UML图代理模式主要有以下几种常见类型:代理模式涉及的主要角色有:C 代码示例 定义 代理模式(Proxy Pattern)属于结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。 通过引入代理对象&am…...
一些elasticsearch重要概念与配置参数
ES 是在 lucene 的基础上进行研发的,隐藏了 lucene 的复杂性,提供简单易用的 RESTful Api接口。ES 的分片相当于 lucene 的索引。 Node 节点的几种部署实例 实例一: 只用于数据存储和数据查询,降低其资源消耗率 node.master: false node.da…...
leetcode 面试经典 150 题:螺旋矩阵
链接螺旋矩阵题序号54题型二维数组(矩阵)解题方法模拟路径法难度中等熟练度✅✅✅ 题目 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3…...
JAVA AOP简单实践(基于SpringBoot)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
java agent的使用【通俗易懂版】
一、静态代理Agent 1.生成Agent的jar包 (1)创建Agent项目,引入javassist.jar包 (2)编写premain方法 import java.lang.instrument.Instrumentation;public class Agent1 {public static void premain(Stri…...
大模型学习指南
随着人工智能的迅猛发展,大模型成为了技术前沿的璀璨明星。踏入大模型学习领域,需要在多个关键方面下功夫。 扎实的数学功底是基石。线性代数为理解多维数据、矩阵运算提供支撑,像大模型中权重矩阵的处理就离不开它;概率论与数理…...
单片机:实现定时器中断(数码管读秒+LED闪烁)(附带源码)
单片机实现定时器中断:数码管读秒与LED闪烁 在单片机项目中,定时器中断是一个常见的应用,用于实现定时任务,例如定时更新显示或控制周期性事件。本文将介绍如何使用定时器中断实现数码管读秒和LED闪烁功能。通过使用定时器中断&a…...
STM32单片机芯片与内部33 ADC 单通道连续DMA
目录 一、ADC DMA配置——标准库 1、ADC配置 2、DMA配置 二、ADC DMA配置——HAL库 1、ADC配置 2、DMA配置 三、用户侧 1、DMA开关 (1)、标准库 (2)、HAL库 2、DMA乒乓 (1)、标准库 ÿ…...
【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 中,strtotime 函数能处理的最大时间范围取决于您的系统和 PHP 版本。 一般来说,它可以处理的时间范围从 1901 年 12 月 13 日到 2038 年 1 月 19 日。超过这个范围可能会导致不可预测的结果或错误。 如果您需要处理更大范围的时间,可能…...
Kibana:LINUX_X86_64 和 DEB_X86_64两种可选下载方式的区别
最近需要在vm(操作系统是 Ubuntu 22.04.4 LTS,代号 Jammy。这是一个基于 x86_64 架构的 Linux 发行版)上安装一个7.17.8版本的Kibana,并且不采用docker方式。 在下载的时候发现有以下两个选项,分别是 LINUX_X86_64 和 …...
【LeetCode每日一题】 LeetCode 151.反转字符串中的单词
LeetCode 151.反转字符串中的单词 题目描述 给你一个字符串 s ,请你反转字符串中单词的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:…...
gitlab克隆仓库报错fatal: unable to access ‘仓库地址xxxxxxxx‘
首次克隆仓库,失效了,上网查方法,都说是网络代理的问题,各种清理网络代理后都无效,去问同事: 先前都是直接复制的网页url当做远端url,或者点击按钮‘使用http克隆’ 这次对于我来说有效的远端u…...
在已有vue cli项目中添加单元测试配置
使用的是vue cli ^4.0.0的脚手架,项目采用的vue2进行编写,项目本身是没有使用单元测试的。应该挺多项目还是使用的vue2的项目进行开发的,自己在开发中过程中,还是发生了挺多需要记录原来功能的情况,这个时候去翻文档明…...
企业级NoSql数据库REDIS集群
1.1数据库主要分为两大类:关系型数据库与 NoSQL数据库 关系型数据库,是建立在关系模型基础上的数把库,其借助于集合代数等数学概念和方法来处理数据库中的数掘主流的 MySQLOracle、Ms sOLSerer和 DB2 都属于这类传统数据库 NoSQL数据库,全称…...
HTML与数据抓取:GET与POST方法详解
讲GET和POST就不能只讲GET和POST 你要讲HTTP请求的基本概念: HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议,主要用于Web浏览器与Web服务器之间的数据通信。HTTP是一个基于…...
【es6复习笔记】模板字符串(3)
介绍 模板字符串是 ES6 引入的一种新的字符串声明方式,它使用反引号()来定义字符串,而不是单引号()或双引号(")。模板字符串可以包含变量、表达式和换行符,这使得它…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
