IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 多频四步相移法投射图案生成 -> 正文阅读

[人工智能]多频四步相移法投射图案生成

以12张三频率的四步相移光栅图像生成为例:

首先光栅图像是对二维数据进行操作,所以需要新建空的矩阵来存储图像,同时设置图像的尺寸height和width,分别对应投影仪的分辨率。

首先说明的是论文中所看到的的三套条纹图案其实就是三个频率的图像。

三个频率这里设置为73 64 56。

这三个频率的含义是在光栅条纹的条纹方向上有多少个正弦条纹。

重点来了!

如何控制不同的频率和不同的相位在图案上进行显示呢?换句话说,

投影的光栅条纹图像强度分布公式如何在代码中体现呢?
在这里插入图片描述
测量中不存在相移误差(不会有多余的相移加入,按理论计算),且背景光强与条纹对比度均为常数 0.5,对应如下式表示:

 I(x,y) =0.5+0.5cos(2*pi*y*f/(heigth)+n*pi2/N);

for i = 1:3 % 控制三种不同的频率
    for  j = 0:3 % 控制四步相移
        for k = 1:width 
            for q=1:heigth
              Ce{i,j+1}(k,q) =0.5+0.5*cos(2*pi*q*f(i)/(heigth)+j*pi/2);
            end
        end
    end
end

这里你应该会有疑问,即

需要解释的是这里用的是cell元胞来进行存储图像数据,相当于二维数据里的每一个元素仍然是个二维数据,每个元素都是一张生成图案。

(1)因为是四步相移,N=4,n-1用j表示,从0~3;

(2)f对频率进行控制,q控制条纹的方向为横向。

(3)这个公式里的2piq*f(i)/(heigth),f(i)/(heigth)为正弦函数的频率,周期是指(heigth)/f(i),一个正弦函数有多少个像素长度,倒数为频率,这也是与多频中频率含义的不同之处。

个人理解,条纹在产生时的频率是和图像的尺寸有关,如果改变正弦条纹本身周期内的像素个数,即改变了它的周期数,频率也会改变,但是图像尺寸确定后条纹的周期不变,频率不变,这只是针对条纹的产生而言,如果投影仪投射出去,无论拍摄相机的分辨率如何变化,在展开相位时均与不同帧图像的相同像素位置的相差有关。

完整的代码段(包括生成和存储)如下:

%%%投影3套共12幅条纹图
%%%三频分别为73 64 56
clc;
clear all;
Ce = cell(3,4);  
f= [73 64 56];
width =1080;  
heigth =1920;
 
%先
for i=1:3
    for j=1:4
        Ce{i,j} = zeros(width,heigth);
    end
end
for i = 1:3 % 控制三种不同的频率
    for  j = 0:3 % 控制四步相移
        for k = 1:width 
            for q=1:heigth
              Ce{i,j+1}(k,q) =0.5+0.5*cos(2*pi*q*f(i)/(heigth)+j*pi/2);
            end
        end
    end
end
for i = 1:3  %循环存储12幅投影条纹图
     for j=1:4
         tmp=Ce{i,j};
         if i==1
           filename=['C:\Users\11273\Desktop\编码结构光\多频四步相移法投射图案生成matlab\',num2str(j),'.bmp'];
         elseif i>1
           filename=['C:\Users\11273\Desktop\编码结构光\多频四步相移法投射图案生成matlab\',num2str(2.^(i)+j),'.bmp']; 
         end
         imwrite(tmp,filename,'bmp');
     end
end

效果图如下:
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:43:23  更:2022-04-18 17:45:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:48:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码