OpenCV总结:绘制朱利亚(Julia)集合图形
朱利亚集合是一个在复平面上形成分形的点的集合。以法国数学家加斯顿·朱利亚(Gaston Julia)的名字命名。
朱利亚集合可以由下式进行反复迭代得到:
对于固定的复数c,取某一z值(如z = z0),可以得到序列
这一序列可能反散于无穷大或始终处于某一范围之内并收敛于某一值。我们将使其不扩散的z值的集合称为朱利亚集合。
以下使用OpenCV编码绘制Julia集图形:
#include <Windows.h>
#include<highgui/highgui.hpp>using namespace cv;const int icount = 200; //迭代次数const float c = -0.85; //实部
const float d = 0.088; //虚部
double m_real, m_image; //Mandelbro集class ComplexClass
{
public:double real;double image;ComplexClass(double r = 0, double i = 0) { real = r, image = i; }
};ComplexClass operator+(const ComplexClass& a, const ComplexClass &b)
{ComplexClass c;c.real = a.real + b.real;c.image = a.image + b.image;return c;
}ComplexClass operator*(const ComplexClass& a, const ComplexClass &b)
{ComplexClass c;c.real = a.real * b.real - a.image * b.image;c.image = a.image * b.real + a.real * b.image;return c;
}double Model(ComplexClass a)
{return sqrtf(a.real * a.real + a.image * a.image);
}double Iteration(ComplexClass a, int n)
{if (n == 0)return Model(a);else{ComplexClass temp = a*a;temp.real += c;temp.image += d;// temp.real += m_real; 把这两句代替前面的两句就是mandelbrot集了// temp.image += m_image;return Iteration(temp, n - 1);}
}Vec3b dye(double dist)
{if (dist < 1000000 && dist>-1000000)return Vec3b(255, 0, 0);elsereturn Vec3b(0, 0, 0); //Julia集之外的区域置为黑色
}int main()
{Mat image = Mat(Size(500, 500), CV_8UC3, Scalar::all(10));for (int Y = 0; Y < image.rows; Y++){for (int X = 0; X < image.cols; X++){float x = (X - image.cols / 2) / 200.0;float y = (Y - image.rows / 2) / 200.0;m_real = x;m_image = y;ComplexClass a(x, y);float dist = Iteration(a, icount);image.at<Vec3b>(Y, X) = dye(dist);}}//namedWindow("OpenCV For Julia", 0);imshow("OpenCV For Julia | c = -0.85 d = 0.088", image);waitKey();
}
(1)c=-0.576 d=0.456
(2)c=-8 d=0.156
(3)c=-0.285 d=0.02
(4)c=-0.85 d=0.088
OpenCV总结:绘制朱利亚(Julia)集合图形相关推荐
- Python实现朱利亚集算法及完整源码
Python实现朱利亚集算法及完整源码 朱利亚集是一种数学图形,它的形态多变,美丽而神秘.在计算机绘图领域,朱利亚集被广泛应用,并因此成为了数字艺术的重要组成部分. 在本文中,我将向大家介绍如何使用P ...
- OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse()
OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse() #include <opencv2/opencv.hpp>usi ...
- NBA名人堂之-朱利叶斯·欧文|埃尔文·海耶斯|多尔夫·谢伊斯|鲍勃·佩蒂特|戴夫·冰
朱利叶斯·欧文 英文名:Julius Erving 出生:1950年2月22日 身高:2.01米 NBA生涯:1976-1983年 司职:前锋 主要荣誉: ①1983年获NBA总冠军: ②5次入选NB ...
- 计算机视觉开源库OpenCV之绘制轮廓函数cv2.drawContours()介绍
计算机视觉开源库OpenCV之绘制轮廓函数cv2.drawContours(),用于轮廓的绘制或填充. cv2.drawContours(image, contours, contourIdx, co ...
- OpenCV 基本绘制Basic Drawing
OpenCV 基本绘制Basic Drawing 基本绘制Basic Drawing 目标 OpenCV理论 Point点 Scalar标量 代码 解释 MyLine MyEllipse MyFill ...
- 中班机器人教室设计方案_奇思妙想一起玩,机器人来了安格利亚东郡生态幼儿园亲子活动...
奇思妙想一起玩 机器人总动员亲子活动 课程起源 有一天午休起床几个小女生正排队梳辫子,因为需要等待,孩子们比较无聊就在看教室的摆件,突然小朋友们就用机器人的语调开始对话,我听到后感觉很有意思也用机器人 ...
- 变量命名 – 匈利亚命名法则 - C语言零基础入门教程
目录 1.属性部分 2.类型部分 3.描述部分 4.MFC.句柄.控件及结构的命名规范 5.变量命名规范 6.库标识符命名法 7.举例 8.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ ...
- Matlab制作朱利表
朱利判据 其中 {bn−k=an−k−ana0∗akcn−k=bn−k−bnb0∗bk...qn−k=pn−k−pnp0∗pk\begin{cases} b_{n-k}=a_{n-k}-\frac{a ...
- OpenCV中绘制外围矩形框和圆框
OpenCV中绘制外围矩形框和圆框 利用边界寻找函数找到的边界坐标信息.然后利用每一条寻找到的边际信息去找到图形的矩形边界和圆形边界. 一. OpenCV中绘制外围矩形框 根据已知的边界信息点.将边界 ...
- OpenCV-Python实战(3)——OpenCV中绘制图形与文本
OpenCV-Python实战(3)--OpenCV中绘制图形与文本 0. 前言 1. OpenCV 绘图基础 2. OpenCV绘制图形 2.1 基本图形的绘制 2.1.1 直线 2.1.2 矩形 ...
最新文章
- Linux其实非常好学
- 数据库开发——MySQL——简单介绍和安装
- RabbitMQ code=200, text=Goodbye比较萌新的问题大佬绕道,乌拉~!
- CentOS 7.1下KVM的安装与配置
- Winform 显示Gif图片
- Oracle透明网关 for SQL Server
- Silverlight概要
- TB6612FNG电机驱动模块纯硬件调试
- 如何解除计算机上的安全警报,怎么关闭windows的安全警报
- ALexa网站排名查询
- 转载 GIS的下个十年(Cary Mann, vice president, Bentley)
- gerrit 怎么不abandon修改提交
- 转:心理学相关经典书籍
- mysql数据长度过长,1406 - Data too long for column ‘express_company‘ at row 1
- 企业上云的选择及好处
- Greenplum 实时数据仓库实践(8)——事实表技术
- 设计师电脑之家赠送U盘版PE网络版WIN10系统安装版
- 考拉解析网站Android 安卓手机下载视频到手机相册
- 内存不能为只读问题的解决办法
- 数学建模中的常用编程软件
热门文章
- cadence导生产文件_写了个Allegro导出bom和坐标文件的教程, 用于JLC的S - 电子制作(ElecDIY)版 - 北大未名BBS...
- VS code如何下载并配置C语言(详细)
- 单片机 一键开关机 软件结合
- abap中方法file_open_dialog的使用
- spring 使用注解遇到的问题
- matlab 默认颜色顺序,MATLAB:设置行的颜色和样式顺序并行应用
- 微信小程序-detail详情页数据动态展示
- 新唐N76E003ISP串口下载轻体验
- 11、权重残差图、RLE和NUSE
- 编辑器——sublime