用MATLAB绘制随机散斑图案【源码+正确的椭圆旋转公式】

本文档介绍了如何使用MATLAB生成随机散斑图案,提供源码并详解椭圆旋转公式。作者分享了在数字图像相关技术研究中的经验,强调了散斑图像质量对匹配算法的重要性,并提供了相关文献参考。代码中包含随机种子设定以复现图像,同时批评了网络上不准确的椭圆旋转公式。
摘要由CSDN通过智能技术生成


前言

由于本人近期正在展开数字图像相关技术用于测量材料形变方向的研究,其中需要对别人现有算法的复现和调研,尽管其中很多算法都已经非常成熟,但对于初学者而言即使明白其中的原理,无法上手实践和操作的话,依然无法能够将其完全的应用起来或者在上面进行创新,我希望能将自己作为一个初学者复现他人代码和学习该原理的过程记录下来,方便每一个涉足该领域的人能更快应用这些知识。

随机散斑图像的质量很大程度上决定了数字图像相关中匹配算法的收敛性,为方便大家做实验时候生成散斑图像,我这里分享了我自己写的绘制随机散斑图案的MATLAB源码,有关随机散斑对于数字图像相关算法的影响,建议阅读参考引用中的两篇文献12,如果你对数字图像相关算法感兴趣,欢迎阅读我的其他帖子:

  1. Matlab实现二维数字图像相关(2D Digital Image Correlation, 2D-DIC)【ADIC2D代码复现及原理介绍】
  2. 数字图像相关(Digital Image Correlation, DIC)中的非线性优化方法(FA-GN与IC-GN)

这份源码的算法部分借鉴了一部分Y Su大佬的开源软件Glare: A free and open-source software for generation and assessment of digital speckle pattern ,如果你需要在课题中使用他的软件请记得引用,以下是两个推荐使用的散斑图像生成软件(比我的源码更强大):
  1. 光绘Glare
  2. Speckle Generator

一.源代码

代码中我放入了一个随机种子 S S S生成,如果你需要复现之前跑出来的随机图像,可以提前将这个种子以及当时实验设置的参数保存下来,这样就可以复现当时的随机图像了。其他部分我都做了较为详细的注释,椭圆绕其中心点的旋转公式请参照Section 3里的内容

clear
close all
clc
%% Section 1:散斑参数设置
width=1920;         % 图像宽
height=1080;        % 图像高
diameter=20;        % 散斑直径(单位:像素)
density=0.5;        % 密排度(区间:0-1,图像上的散斑密度)
variation=0.5;      % 偏移度(区间:0-1,图像上的散斑随机排布程度,0时即为圆点整列)
background=1;       % 图像背景颜色(0:黑色,1:白色)

% 可选设置
eccentricity=0.99;     % 椭圆的偏心率(区间:[0,1),为0时即为圆点)
S=rng;              % 生成一组随机数种子,使之后Section中产生的散斑伪随机

%% Section 2:生成随机散斑在图像上的位置
radius=0.5*diameter;    % 散斑半径(单位:像素)
major_radius = radius / sqrt(sqrt(1 - eccentricity * eccentricity));    <
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ViolentElder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值