模拟散斑生成:二维散斑相关验证

非均匀应变模拟数字散斑图生成:

rand函数生成0-1随机数模拟散斑颗粒分布,图像背景光强均匀,变形前后图像灰度分布由式:

 

s-表示散斑颗粒数目

a-散斑颗粒尺寸

I0-背景光强(一般设置为1)

 

 

 其中:

 引入非均匀应变

%% 生成六张散斑图,参数记得改一下
%input for image size(NX,NY) <散斑图大小(像素)>
NX =512;
NY =512;
%input for numble of speckles(S)<散斑数量>
S = 1200;
%输入的散斑大小
a = 4;
%input for peak intensity of each speckle(I0)<散斑峰值强度>
I0 =1;
%input for displacement(UX,UY)<散斑图位移>
UX = 0.5;
UY = 0;

UX1 = 1;
UY1 = 0;

UX2 = 1.5;
UY2 = 0;

UX3 = 2;
UY3 = 0;

UX4 = 2.5;
UY4 = 0;
%input for deformation gradient(ux,uy,vx,vy)<位移梯度分量>ux = 0.002;
ux = 0;
uy = 0;
vx = 0;
vy = 0;
 
%% 
%main program主程序
I = zeros(NX,NY);%创建一个512*512的全0矩阵
%rand('state');
X=NY*rand(S,1);%产生S*1阶0~1均匀分布的随机数矩阵
Y=NY*rand(S,1);
%generation of undeformed speckle image初始散斑图的生成
for i=1:NX
    for j=1:NY
        I(i,j)=I0.*pi./4.*a.^2.*sum((erf((i-X(1:end))./a)-erf((i+1-X(1:end))./a)).*(erf((j-Y(1:end))./a)-erf((j+1-Y(1:end))./a)));
    end
end

A=double(I);%double(I)是将读入的图像I的uint8数据转换为double类型的数据
G=mat2gray(A);%mat2gray是一个计算机函数,功能是实现图像矩阵的归一化操作。所谓”归一化”就是使矩阵的每个元素的值都在0和1之间。
imwrite(G,'s_0.jpg')%生成数据为G名称为PIP的tif格式图像
%% 0.04,0位移
for i=1:NX
    for j=1:NY
        
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值