最简单的分形图像生成算法
本文将提供一段完整地生成一幅分形图像文件的C语言代码,并且极为简单.我相信这应该是最简单的分形图像生成算法.大部分的分形图像代码也都很短,但一有递归迭代就难以理解了.而这段代码则很好懂,并且其生成的图像会使人意想不到.
#include <iostream> #include <cmath> #include <cstdlib>#define DIM 1000void pixel_write(int,int); FILE *fp;int main() {fp = fopen("image.ppm","wb");if (!fp){return -1;}fprintf(fp, "P6\n%d %d\n255\n", DIM, DIM);for(int j=0;j<DIM;j++){for(int i=0;i<DIM;i++){pixel_write(i,j);}}fclose(fp);return 0; }void pixel_write(int i, int j) {static unsigned char color[3];float t = j + i*0.001f;memcpy(color, &t, 3);fwrite(color, 1, 3, fp);// 其实更简单粗爆的方式是//fwrite(&t, 1, 3, fp); }
代码运行完后,会生成一个PPM格式的图像文件,为:
最简单的分形图形应该是康托(Cantor)三分集,只是不停地将线段一分为二.如下图所示:
该算法生成的图像很康托三分集有些相似.尤其是它的绿色通道:
将代码修改下,其分形的效果会更明显:
void pixel_write(int i, int j) {static unsigned char color[3];float t = j/4 + i*0.001f;memcpy(color, &t, 3);fwrite(color, 1, 3, fp); }
相关文章:
C语言中将0到1000的浮点数用强制指针类型转换的方式生成一幅图像
最简单的分形图像生成算法相关推荐
- 从DDPM到GLIDE:基于扩散模型的图像生成算法进展
前几天,OpenAI在Arxiv上挂出来了他们最新最强的文本-图像生成GLIDE [1],如头图所示,GLIDE能生成非常真实的结果.GLIDE并非基于对抗生成网络或是VQ-VAE类模型所设计,而是采 ...
- 昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强
本文分享自华为云社区<昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!>,作者:昇腾CANN . 近日,CVPR 2022放榜,基于CANN的AI论文<Interacti ...
- MATLAB 三维数据图像生成算法
MATLAB 三维数据图像生成算法 三维点云数据分析,通过图像形势展示该数据的变化规律 看标题,跑代码.玩得6! x=[xxxx,xxxx];%这里是你的数据 y=[yyyy,yyyy]; z=[zz ...
- 【视频课】生成对抗网络经典任务,详解基于GAN的图像生成算法!
前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...
- 基于扩散模型的文本引导图像生成算法
©作者 | 微风 单位 | 中山大学+IDEA研究院 研究方向 | 多模态表征学习.多模态生成 DALL·E 2 之所以能够生成十分惊艳的图像,扩散模型功不可没,相比 GAN,该模型可以生成更多样,更 ...
- 图像降噪算法——中值滤波/均值滤波/高斯滤波/双边滤波
图像降噪算法--中值滤波/均值滤波/高斯滤波/双边滤波 图像降噪算法--中值滤波/均值滤波/高斯滤波/双边滤波 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--中值滤波/均值滤波/高 ...
- 【项目实战课】基于Pytorch的StyleGAN v1人脸图像生成实战
欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的StyleGAN v1人脸图像生成实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题, ...
- 【项目实战课】基于Pytorch的DCGAN人脸嘴部表情图像生成实战
欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的DCGAN人脸嘴部表情图像生成实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行 ...
- 无需向量监督的矢量图生成算法,入选CVPR 2021 | 代码开源
说起图像生成算法,大家也许并不陌生. 不过,大多数算法都针对栅格图像,也就是位图,而不支持矢量图. 虽然也有一些生成矢量图形的算法,但是在监督训练中,又受限于矢量图数据集有限的质量和规模. 为此,来自 ...
最新文章
- 车辆检测--DAVE: A Unified Framework for Fast Vehicle Detection and Annotation
- Go 语言的垃圾回收演化历程:垃圾回收和运行时问题
- castle windsor学习-----XML Inline Parameters 内联参数
- Java01-day01【发展史、跨平台原理、JRE和JDK、常用DOS命令、关键字、常量、数据类型、变量使用的注意事项、标识符、类型转换】
- JUnit5 快速指南
- leetcode 463. 岛屿的周长
- nginx 负载均衡tomcat
- 大型网站技术架构(五)--网站高可用架构(转)
- 论文阅读笔记五十三:Libra R-CNN: Towards Balanced Learning for Object Detection(CVPR2019)
- 1926: 粟粟的书架 前缀和+二分+主席树
- 听说Unscrambler HSI是个很牛的光谱分析软件?
- LFW pairs.txt解释
- java中POJO类为什么要实现序列化
- OCR为你定义驾驶证识别(驾照识别)技术
- 线性规划 - 数学建模
- jsp汽车销售管理系统
- 万维网互联网计算机网络的区别,万维网和互联网的区别_互联网、万维网、因特网之间有什么区别...
- 软件工程各阶段的UML图
- gorilla/mux的使用
- 前端开发免费学习资源分享
热门文章
- 2021-04-12 电机滑模控制 LuGre摩擦模型
- Python 深度学习目标检测评价指标 :mAP、Precision、Recall、AP、IOU等
- npm 安装less插件_Gulp 开发 HTML 静态页面和 Less 实时更新
- Batch Normalization 学习笔记
- Machine Learning - Andrew Ng on Coursera (Week 2)
- Visual Studio查找搜索类和方法的快捷方法
- 深入理解java SPI机制
- 成为一名更好的程序员:如何阅读源代码
- 我对Java Serializable(序列化)的理解和总结
- 亿级 Web 系统的容错性建设实践