Arnold置乱】的更多相关文章

自从上次写了Hilbert图像置乱之后,就对图像置乱研究了一下,发现这里面也是有很多置乱算法的. Arnold也算一种比较主要的置乱算法,算法由以下变换公式产生: 这里a和b是参数,n是迭代次数,N是图像的高或宽. 有了正变换公式,我们还需要反变换公式,正好我最近在学Mathematica,反变换公式就是用这个软件求的. 公式如下: 两个变换矩阵正好是求逆的关系吧,手算也出来了,不过顺便熟悉一下Mathematica,何乐不为呢. 处理结果如下: 原图: 置乱后: 恢复后: matlab代码如下…
相关软件混沌数学之离散点集图形DEMO 相关代码: class ArnoldEquation : public DiscreteEquation { public: ArnoldEquation() { m_StartX = 0.25f; m_StartY = 0.25f; } void IterateValue(float x, float y, float& outX, float& outY) const { outX = fmodf(x + y, 1.0f); outY = fmo…
Arnold变换是Arnold在遍历理论研究中提出的一种变换.由于Arnold本人最初对一张猫的图片进行了此种变换,因此它又被称为猫脸变换.Arnold变换可以对图像进行置乱,使得原本有意义的图像变成一张无意义的图像.经典Arnold变换是一个二维可逆映射,但离散形式的Arnold变换具有周期性随着图像大小的变化而变化. 定义1 称整数到自身的变换 ,其中为二维Arnold变换. 定义2  称整数到自身的变换,其中 为二维Arnold逆变换. 设为图像上的点,在Arnold变换下变成点,因此,使…
jcFeather 现在可以支持Arnold了,可以用Arnold来贴图方式渲染jcFeather的刷出的多边形羽毛. jcFeather 自带笔刷刷羽毛多边形,再配上一个Arnold shader 就可以将多个羽毛贴图附到一个多边形上了, 然后再靠用户刷贴图颜色来控制选取羽毛.最终渲出更多细节. 下边是简单的制作流程视频和图片介绍,还有一个介绍文档,请下载观看. http://files.cnblogs.com/jerrykon/jcFeatherTexMix.pdf…
#include <ai.h> #include <iostream> #include <stdio.h> #include <vector> #include <assert.h> using namespace std; void print_the_type() { printf( printf( printf( printf( printf( printf( } int main() { print_the_type(); printf…
走马观花看了一些实现全局光(global illumination)的文章,都是非实时电影级的.的确可以分为两个阵营,一是pixar的renderman中常用的reyes+点云,感觉pixar一路走来都是在通过各种缓存加速,不同的是缓存什么,缓存到哪里去.非常喜欢各种tricky的办法,给艺术家们充分的控制,或许他们的艺术家真的是太多了,太有创造性了,reyes流程目标是做高精度的图片,但并没有涉及多少真实感的东西,所以他们做动画感觉还是很棒的,尤其是各种动物的,因为这不需要物理上多么真实,给艺…
转自-http://blog.renren.com/blog/248100754/471276636 在AMS的首页上找到了三条讣告,依次是V.I.Arnold(1937-2010),W.Rudin(1921-2010)和M.Gardner(1914-2010).Arnold是最年轻的,尽管他早已不再年轻,照片上的他,苍老得让人心疼.解决Hilbert第13问题的日子过去了,证明KAM定理的日子过去了,写Mathematical methods of classical mechanics的日子…
Arnold是一款基于真实物理光照算法和光线追踪算法的照片级渲染器,参与过多部好莱坞大片的制作,公司官网是:www.solidangle.com,官网上有很多效果图: 这里自己用一个球体测试了一下效果,很不错,不过Arnold在渲染速度方便稍慢,因为根据官网介绍,他们对Arnold的定位是“把人的时间解放出来,一切交给机器去计算”~ 所以如果要用Arnold做项目,最好配备有渲染农场: Arnold的优势在于:场景越复杂,相对其他渲染器速度就越快,其他渲染器的渲染速度是随着复杂程度递增的,而Ar…
public class FisherYates { public static void main(String[] args) { int[] arr = new int[10]; // 初始有序数组 System.out.println("初始化有序数组:"); for (int i = 0; i < arr.length; i++) { arr[i] = i + 1; System.out.print(" " + arr[i]); } // 费雪耶兹置…
正好刚写了Hibert生成曲线,不如再加一篇应用的程序. 关于Hilbert图像置乱,我在网上搜的应用领域主要集中在数字水印和图像加密上,而这两个领域我都没怎么接触过. 大部分的图像置乱都是如下图的置乱1所示,至于置乱2则是我不小心生成的. 置乱1是先把原图按hilbert曲线进行赋值,拉成一条一维数组,再reshape成一副图像. 置乱2是先把原图reshape成一维数组,然后再按hilbert曲线进行赋值,生成一副图像. 我感觉都差不多,网上置乱1更常见些,置乱2好像就没见过,不过这都算置乱…