matlab练习程序(Arnold图像置乱)

2023-11-05

自从上次写了Hilbert图像置乱之后,就对图像置乱研究了一下,发现这里面也是有很多置乱算法的。

Arnold也算一种比较主要的置乱算法,算法由以下变换公式产生:

这里a和b是参数,n是迭代次数,N是图像的高或宽。

有了正变换公式,我们还需要反变换公式,正好我最近在学Mathematica,反变换公式就是用这个软件求的。

公式如下:

两个变换矩阵正好是求逆的关系吧,手算也出来了,不过顺便熟悉一下Mathematica,何乐不为呢。

处理结果如下:

原图:

置乱后:

恢复后:

matlab代码如下:

clear all;close all;clc;

img=imread('lena.jpg');
imshow(img,[])
[h w]=size(img);

%置乱与复原的共同参数
n=10;
a=3;b=5;
N=h;

%置乱
imgn=zeros(h,w);
for i=1:n
    for y=1:h
        for x=1:w           
            xx=mod((x-1)+b*(y-1),N)+1;
            yy=mod(a*(x-1)+(a*b+1)*(y-1),N)+1;        
            imgn(yy,xx)=img(y,x);                
        end
    end
    img=imgn;
end
figure;
imshow(imgn,[])

%复原
img=imgn;
for i=1:n
    for y=1:h
        for x=1:w            
            xx=mod((a*b+1)*(x-1)-b*(y-1),N)+1;
            yy=mod(-a*(x-1)+(y-1),N)+1  ;        
            imgn(yy,xx)=img(y,x);                   
        end
    end
    img=imgn;
end
figure
imshow(imgn,[])

恢复后图像和原图是一样的。

转载于:https://www.cnblogs.com/tiandsp/p/3954550.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab练习程序(Arnold图像置乱) 的相关文章

  • 如何使用神经网络保存 Sift 特征向量进行分类

    SIFT 特征的 Matlab 实现发现于http www cs ubc ca lowe keypoints http www cs ubc ca lowe keypoints 在 stackoverflow 的帮助下 我想将功能保存到 m
  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio
  • 图像分析-光纤识别

    我是图像分析新手 您知道如何以仅获取纤维的方式对该图像进行二值化吗 我尝试过不同的阈值技术等 但没有成功 我不介意应该使用什么工具 但我更喜欢 NET or Matlab PS 我不知道该把答案放在哪里 所以我把它放在StackOverfl
  • 如何在Matlab中自定义轮廓线?

    我正在准备一个等高线图 我应该在其中突出显示特定级别的等高线 例如 我的轮廓线值位于 1 和 1 之间 我想突出显示与值 0 相对应的线 我尝试使用以下过程来执行此操作 M c contourf longitude latitude del
  • 在 MATLAB 中使用 FFT 的频率响应

    这是场景 使用频谱分析仪 我有输入值和输出值 样本数是32000采样率为2000样本 秒 输入是正弦波50 hz 输入为电流 输出为压力 单位 psi 我如何使用 MATLAB 根据这些数据计算频率响应 使用 MATLAB 中的 FFT 函
  • MATLAB 中时间戳过滤器的优化 - 处理非常大的数据集

    我正在 MATLAB 中编写一个程序 必须使用 MATLAB 并且不能真正使用 MEX 来过滤大量数据 我需要实现的过滤器之一要求我将时间戳向量与其他时间戳不会出现的已知 不良 时间列表进行比较 一个典型的时间戳向量有大约 2 000 00
  • 扩展 MATLAB 函数名称的最大长度

    我编写了一个 MATLAB 程序 可以动态创建自定义 MATLAB 函数 并使用以下命令在其他 MATLAB 实例中启动它们unix命令 我使用这个程序来自动化 fMRI 神经影像分析 使用 SPM8 for MATLAB 一切正常 但是
  • MATLAB 滚动图

    我有一个脑电图数据库 我想绘制它 数据库是一个19 1000 134的矩阵 其中 19 是通道数 在第一种方法中 我只使用一个渠道 1000 个样本大小 采样率为 500 Hz 时为 1000 个点 即 2 秒数据 134 epochs的数
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用
  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • 使用mat2cell将MxN的矩阵划分为1xN大小的M矩阵

    我有一个大小为 MxN 的矩阵 比方说 1867x3 1867 行和 3 列 我想将其分成 1867 个大小为 1x3 的单元格 我使用了mat2cell X 1 1866 这里X是矩阵 1867x3 结果给出了两个单元格 一个单元格的大小
  • Matlab:保存后翻转图例顺序和图例重叠图

    我正在尝试根据以下内容反转我的图例条目顺序matlab条形图中图例颜色的逆序 https stackoverflow com questions 31178005 reverse ordering of legend colors in m
  • 如何找到在matlab中重复的矩阵的每一行的索引?

    我想找到矩阵中所有有重复项的行的索引 例如 A 1 2 3 4 1 2 3 4 2 3 4 5 1 2 3 4 6 5 4 3 要返回的向量将是 1 2 4 很多类似的问题建议使用unique函数 我已经尝试过 但我能得到的最接近我想要的功
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • 如何将二进制值列表转换为int32类型?

    我在 MATLAB 工作区中有一个小端格式的二进制数列表 我想将它们转换为 int32 a是由 0 和 1 组成的双向量 如下所示 a 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
  • 在 Matlab 中将 datenum 转换为 datetime 的最快方法

    我在 Matlab 中将 datenum 转换为 datetime 时遇到问题 Given dnum floor now floor now 1 我尝试了以下方法 datenum dnum 但这没有用 我发现有效的方法是 datetime
  • Matlab:如何更改矩阵的存储方式?从 1x1x3 到 1x3?

    我目前有 val 1 0 7216 val 2 0 7216 val 3 0 7216 但我想要 0 7216 0 716 0 721 我可以做什么样的操作来做到这一点 The reshape函数将在这里解决问题 Arrange the e
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • MATLAB - 冲浪图数据结构

    我用两种不同的方法进行了计算 对于这些计算 我改变了 2 个参数 x 和 y 最后 我计算了每种变体的两种方法之间的 误差 现在我想根据结果创建 3D 曲面图 x gt on x axis y gt on y axis Error gt o

随机推荐

  • 构造函数析构函数为什么没有返回值?

    构造函数析构函数为什么没有返回值 Liupq 2008 5 10 构造函数和析构函数是两个非常特殊的函数 它们没有返回值 这与返回值为void的函数显然不同 后者虽然也不返回任何值 但还可以让它做点别的事情 而构造函数和析构函数则不允许 在
  • lstm原文_LSTM:《Long Short-Term Memory》的翻译并解读

    LSTM Long Short Term Memory 的翻译并解读 目录 Long Short Term Memory Abstract 1 INTRODUCTION 2 PREVIOUS WORK 3 CONSTANT ERROR BA
  • Vue + ElementUI集成pdf.js 文件,预览pdf 文件

    步骤总结 第一步 下载pdf js 资源在此下载 第二步 解压 打开Vue项目的config index js文件 查看资源目录是static文件夹 所以将解压后的文件夹放入项目的static目录下 如图 第三步 使用 在新建的vue文件中
  • JSP数据访问+(include指令+对象作用域)

    include指令 将需要重用的代码放在一个页面 再用上方法调用 application内置对象 application对象代表WEB应用 整个Web应用共享一个application对象 因此 application对象类似于系统的 全局
  • Java HTTP方式请求ASP.NET(C#)WebService

    package com ideamov wap util import java io ByteArrayOutputStream import java io IOException import java io InputStream
  • mnist文件格式说明

    根据官网 http yann lecun com exdb mnist 的文件格式的定义 TRAINING SET LABEL FILE train labels idx1 ubyte offset type value descripti
  • System,Math,BigInteger 和 BigDecimal常用类的使用

    其他常用类的使用 1 System 2 Math 3 BigInteger 和 BigDecimal Test public void test1 String javaVersion System getProperty java ver
  • subprocess.CalledProcessError: Command ‘[‘which‘, ‘c++‘]‘ returned non-zero exit status 1.

    出现的错误 subprocess CalledProcessError Command which c returned non zero exit status 1 在网上搜了搜没看到有同样错误的解决办法 有的地方提到的什么gcc g 我
  • git中的origin

    origin 首先假设你自己在github上创建了一个Repository 叫做myRepository 假设你的Github ID是user1 这个时候指向你的代码库的链接是 https github com user1 myReposi
  • MATLAB时间序列2(ARIMA,季节性序列及其预报)------2019/8/14

    时间序列 时间序列模型只适合短时期预测 不适合长时期 平稳时间序列 1 平稳性检验及自协方差函数 自相关函数的估计 1 平稳性 Daniel 检验 x0 1 37 2 96 1 91 3 10 2 08 2 54 4 07 3 62 2 9
  • virtio-scsi和virtio-blk的理解

    virtio scsi和virtio blk的理解 virtio scsi和virtio blk都是磁盘的半虚拟化驱动 virtio scsi解决了virtio blk的一些限制 来看看官网的介绍 译文 virtio scsi hba取代v
  • TypeScript之泛型, 模块化, 命名空间, 装饰器(TypeScript完结)

    TypeScript TypeScript中的泛型 泛型的定义 2 泛型函数 3 泛型类 4 泛型接口 泛型 软件工程中 我们不仅要创建一致的定义良好的API 同时也要考虑可重用性 组件不仅能够支持当前的数据类型 同时也能支持未来的数据类型
  • ScriptManager控件

    3 ScriptManager控件 ScriptManager是Asp NET Ajax一个重要的控件 它用来处理页面上的所有Asp NET Ajax组件以及局部页面的更新 生成相关的客户端脚本 所有需要支持Asp NET Ajax的ASP
  • 《Android 开发艺术探索》笔记3--View事件体系

    View事件体系思维导图 View的事件体系 View的基础知识 View的位置参数 MotionEvent和TouchSlop VelocityTracker GestureDetector View的滑动 scrollTo scroll
  • 2013电赛总结【西电专用】

    电赛全称全国大学生电子设计竞赛 全国赛在每逢单数年的9月份举行 竞赛时间四天三夜 竞赛流程 政策可能有变 每一届竞赛流程可能都不一样 这里只是根据我的了解进行总结的 我们学校电赛差不多是从每年年初新学期开学时开始进行选拔 也有可能会在前一学
  • 四、小程序必备API

    4 1请求服务器数据API 4 1 1小程序 服务器架构 小程序和服务器通信的架构也可以称为C S架构 请求过程 1 小程序先向服务器发起网络请求 2 服务器收到请求后执行相关代码处理请求 3 处理完毕后服务器向小程序回复并返回数据 4 小
  • 2020-03-14

    matlab车牌识别 可做matlab数字图像 零定金做演示 诚信为本 点我想要私聊 图像检索 基于综合特征的图像检索设计 实现根据包括形状 颜色和纹理不同权重实现检索功能 也就是以图搜图 车牌识别 国内全国车牌识别 国外车牌识别 部分含设
  • 吴恩达机器学习(六)梯度下降

    梯度下降算法可以用在更一般的问题上 比如计算minimize J 0 n 用以优化代价函数 不断地改变 0和 1的值 直到代价函数J达到最小值 梯度下降法的一大特点就是 不同位置出发 得到的可能是局部最优解 而非整体最优解 repeat u
  • 【第21例】IPD 体系进阶:什么是产品包?什么是需求包?

    目录 目录 内容简介 内容详解 CSDN学院 作者简介 目录 第01例 CDCP 概念决策评审点
  • matlab练习程序(Arnold图像置乱)

    自从上次写了Hilbert图像置乱之后 就对图像置乱研究了一下 发现这里面也是有很多置乱算法的 Arnold也算一种比较主要的置乱算法 算法由以下变换公式产生 这里a和b是参数 n是迭代次数 N是图像的高或宽 有了正变换公式 我们还需要反变