本文将提供一段完整地生成一幅分形图像文件的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的浮点数用强制指针类型转换的方式生成一幅图像

最简单的分形图像生成算法相关推荐

  1. 从DDPM到GLIDE:基于扩散模型的图像生成算法进展

    前几天,OpenAI在Arxiv上挂出来了他们最新最强的文本-图像生成GLIDE [1],如头图所示,GLIDE能生成非常真实的结果.GLIDE并非基于对抗生成网络或是VQ-VAE类模型所设计,而是采 ...

  2. 昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强

    本文分享自华为云社区<昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!>,作者:昇腾CANN . 近日,CVPR 2022放榜,基于CANN的AI论文<Interacti ...

  3. MATLAB 三维数据图像生成算法

    MATLAB 三维数据图像生成算法 三维点云数据分析,通过图像形势展示该数据的变化规律 看标题,跑代码.玩得6! x=[xxxx,xxxx];%这里是你的数据 y=[yyyy,yyyy]; z=[zz ...

  4. 【视频课】生成对抗网络经典任务,详解基于GAN的图像生成算法!

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  5. 基于扩散模型的文本引导图像生成算法

    ©作者 | 微风 单位 | 中山大学+IDEA研究院 研究方向 | 多模态表征学习.多模态生成 DALL·E 2 之所以能够生成十分惊艳的图像,扩散模型功不可没,相比 GAN,该模型可以生成更多样,更 ...

  6. 图像降噪算法——中值滤波/均值滤波/高斯滤波/双边滤波

    图像降噪算法--中值滤波/均值滤波/高斯滤波/双边滤波 图像降噪算法--中值滤波/均值滤波/高斯滤波/双边滤波 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--中值滤波/均值滤波/高 ...

  7. 【项目实战课】基于Pytorch的StyleGAN v1人脸图像生成实战

    欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的StyleGAN v1人脸图像生成实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题, ...

  8. 【项目实战课】基于Pytorch的DCGAN人脸嘴部表情图像生成实战

    欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的DCGAN人脸嘴部表情图像生成实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行 ...

  9. 无需向量监督的矢量图生成算法,入选CVPR 2021 | 代码开源

    说起图像生成算法,大家也许并不陌生. 不过,大多数算法都针对栅格图像,也就是位图,而不支持矢量图. 虽然也有一些生成矢量图形的算法,但是在监督训练中,又受限于矢量图数据集有限的质量和规模. 为此,来自 ...

最新文章

  1. 车辆检测--DAVE: A Unified Framework for Fast Vehicle Detection and Annotation
  2. Go 语言的垃圾回收演化历程:垃圾回收和运行时问题
  3. castle windsor学习-----XML Inline Parameters 内联参数
  4. Java01-day01【发展史、跨平台原理、JRE和JDK、常用DOS命令、关键字、常量、数据类型、变量使用的注意事项、标识符、类型转换】
  5. JUnit5 快速指南
  6. leetcode 463. 岛屿的周长
  7. nginx 负载均衡tomcat
  8. 大型网站技术架构(五)--网站高可用架构(转)
  9. 论文阅读笔记五十三:Libra R-CNN: Towards Balanced Learning for Object Detection(CVPR2019)
  10. 1926: 粟粟的书架 前缀和+二分+主席树
  11. 听说Unscrambler HSI是个很牛的光谱分析软件?
  12. LFW pairs.txt解释
  13. java中POJO类为什么要实现序列化
  14. OCR为你定义驾驶证识别(驾照识别)技术
  15. 线性规划 - 数学建模
  16. jsp汽车销售管理系统
  17. 万维网互联网计算机网络的区别,万维网和互联网的区别_互联网、万维网、因特网之间有什么区别...
  18. 软件工程各阶段的UML图
  19. gorilla/mux的使用
  20. 前端开发免费学习资源分享

热门文章

  1. 2021-04-12 电机滑模控制 LuGre摩擦模型
  2. Python 深度学习目标检测评价指标 :mAP、Precision、Recall、AP、IOU等
  3. npm 安装less插件_Gulp 开发 HTML 静态页面和 Less 实时更新
  4. Batch Normalization 学习笔记
  5. Machine Learning - Andrew Ng on Coursera (Week 2)
  6. Visual Studio查找搜索类和方法的快捷方法
  7. 深入理解java SPI机制
  8. 成为一名更好的程序员:如何阅读源代码
  9. 我对Java Serializable(序列化)的理解和总结
  10. 亿级 Web 系统的容错性建设实践