结构光实验正弦信号模板生成

news/2024/7/5 6:43:28

代码如下:

## LL 2020/4/11 14:15
# a demo to generate pattern maps of different frequence.
import numpy as  np
import matplotlib.pyplot as plt
import cv2 as cv

def signal_xHz(A,B ,fi, time,N,i):
	return A * np.sin( 2 * np.pi * fi * np.linspace(0, time , N)  + 2* np.pi/3  *  i)  +  B
 
def generate_sin_2D(x,y,A,B,fi,time,i):
    #生成一个x,y 大小的正选波模板,正弦波幅值为A,中心值为B,采样时长为time,频率为fi,模板序号为i
	
	# 注意: x/time 为采样的频率,采样的频率最好大于最高频的5倍即  x/time = 5~8 fi
	a = np.zeros([x, y], np.uint8)
	print(a.size)
	sin = signal_xHz(A,B,fi,time,x,i);
	a[:,:] = sin
	img = np.zeros([x, y, 3], np.uint8)
	img[:,:,1] = a;
	return img
	
for f in range(1,10):
	a1 = generate_sin_2D(480,480,60,120,0.1*f+1,10,0)
	name = str(f)+'hz.bmp'
	cv.imwrite(name,a1)
	
# 示例	
a = generate_sin_2D(480,480,60,120,1,10,0)
cv.imshow("iamge", a)
cv.waitKey(-1)
print(a)

最后生成的不同的频率模板如下:
在这里插入图片描述

补充:后面可能考试需要用到倾斜的相位图的版本,MATLAB代码(矩阵处理这一方面MATLAB还是比Python的Numpy要好用)如下:

% 2020/06/01    by LiuLi
%%  x:图像分辨率,N:正弦波周期,savepath:正弦模板图片组存放路径
function  save_pattermap_bank(x,N,savepath)
% x = 480;
% N = 8 ;
for i = [0,1,2] 
 color = uint8(zeros(x,x,3));
 deta_phi = 2*pi*N/x;
 map = zeros(x,x);
 for col = 1:x
    phi = linspace(0+(col-1)*deta_phi,2*pi*N+(col-1)*deta_phi,x);
    sin_ = 60*sin(phi+2*pi/3*i)+120;
    map(col,:) = uint8(sin_);
    
end
color(:,:,2) = map;
savename = ['pattern', mat2str(i+1) '.bmp'];
savepath_ = [savepath,'/',savename];
imwrite(color,savepath_);
end
end

结果是这样的:
在这里插入图片描述


http://www.niftyadmin.cn/n/2752648.html

相关文章

Yii2 创建项目

安装基础环境创建基础版创建高级版1 安装基础环境 搭建php, nginx环境, 请参考: http://blog.csdn.net/alex_my/article/details/53818143 首先先安装Composer cd ~/Lib/php curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer然后切…

深度图伪彩色处理(matlab)+gray2color

深度图 深度图衡量场景中的深度信息,每一个像素点的像素值代表该采样点对应的场景点到相机的距离,因此深度图是单通道的,从图像的视觉效果来看即灰度图。 判断深度图的质量我们可以通过观察和数据分析两种方法,通常最后的输出图在…

代码“中间地带”的封装与复用

先提出一个词:中间地带。 作为一个框架提供商,微软公司为我们提供了最基础最常用的类和方法,在实际工作中,我们需要去继承去组合这些类与方法,形成我们的解决方案。 那么,存在一个问题,为什么微…

Hexo建站、部署、主题优化

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 下面记录本人Hexo建站、部署、主题优化的过程。 Hexo建站、部署 Hexo建站教程GitHub Pages绑…

个人收藏夹

1、MATLAB实现带有保边效果的双边滤波器: 代码引用自博客: http://blog.chinaaet.com/helimin/p/5100018184 双边滤波器函数代码如下: function B bfilter2(A,w,sigma) %A为给定图像,归一化到[0,1]的double矩阵 %W为双边滤…

Ztree树增删改查菜单,遇到的问题总结

一、引言 我今天做了一个Ztree树增删改查菜单的功能。其中遇到了很多坑爹的问题&#xff0c;和大家讲述一下。 二、代码展示 1、Ztree树前台代码 <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%><…

nginx proxy_cache 缓存配置[转]

前言&#xff1a; 由于本人工作原因&#xff0c;涉及到网络直播领域&#xff0c;其中视频的回放下载&#xff0c;涉及到了一些视频下载方面的技术。针对于一个完整视频的下载&#xff0c;目前市面上的主流做法是&#xff0c;先将整个视频流切片&#xff0c;存储到文件服务器中&…

机器学习文章汇总

机器学习算法是一类从数据中自动分析获得规律&#xff0c;并利用规律对未知数据进行预测的算法。 一个更精确的定义&#xff1a;如果计算机程序对于任务 T 的性能度量 P 通过经验 E 得到了提高&#xff0c;则认为此程序对经验 E 进行了学习。 为了便于理解&#xff0c;这里我…