matlab 光的衍射图像

2024-01-08 13:58
文章标签 matlab 图像 衍射

本文主要是介绍matlab 光的衍射图像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大物相关的光的衍射图像绘制
效果图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
——————————————————————————
滑动条拖动到不同位置时会绘制不同的衍射图像
完整代码:

function OPD
hold on,axis equal
axis([-10,40,-30,30])
set(gca,'xtick',[],'ytick',[],'xcolor','w','ycolor','w')
set(gca,'color','w')
plot([0,0;0,0],[5,-5;30,-30],'color',[0.1,0.1,0.1],'LineWidth',2)
plot([-10,-10;0,0],[5,-5;5,-5],'color',[0.3,0.3,0.3],'LineWidth',0.5)
text(-5,5,'>','color',[0.3,0.3,0.3])
text(-5,-5,'>','color',[0.3,0.3,0.3])
plot([30;30],[20,-20],'color',[0.1,0.1,0.1],'LineWidth',4,'tag','board')
plot([0;40],[5,5+(20-5)/3*4],'color',[0.3,0.3,0.3],'LineWidth',0.5,'tag','light')
plot([0;40],[5,5+(-20-5)/3*4],'color',[0.3,0.3,0.3],'LineWidth',0.5,'tag','light')
plot([0;40],[-5,-5+(20+5)/3*4],'color',[0.3,0.3,0.3],'LineWidth',0.5,'tag','light')
plot([0;40],[-5,-5+(-20+5)/3*4],'color',[0.3,0.3,0.3],'LineWidth',0.5,'tag','light')
light_source1=[0 5];
light_source2=[0 -5];
n=1;
for i=-20:0.1:20pos=[30,i];v1=pos-light_source1;v2=pos-light_source2;l1=sqrt(sum(v1.^2));l2=sqrt(sum(v2.^2));cos1=cos(l1*2.5);cos2=cos(l2*2.5);skewing=abs(cos1+cos2);color_bar(n,1:3)=ones(1,3).*(skewing/2); n=n+1;
end
colormap(color_bar);
colorbar
sl=uicontrol('style','slider',...'position',[210,20,210,20],...'value',2/3,...'callback',@movesl);function movesl(~,~)x=10+30*get(sl,'value');delete(findobj('tag','light'));delete(findobj('tag','board'));plot([x;x],[20,-20],'color',[0.1,0.1,0.1],'LineWidth',4,'tag','board')plot([0;40],[5,5+(20-5)/x*40],'color',[0.3,0.3,0.3],'LineWidth',0.5,'tag','light')plot([0;40],[5,5+(-20-5)/x*40],'color',[0.3,0.3,0.3],'LineWidth',0.5,'tag','light')plot([0;40],[-5,-5+(20+5)/x*40],'color',[0.3,0.3,0.3],'LineWidth',0.5,'tag','light')plot([0;40],[-5,-5+(-20+5)/x*40],'color',[0.3,0.3,0.3],'LineWidth',0.5,'tag','light')n=1;for j=-20:0.1:20pos=[x,j];v1=pos-light_source1;v2=pos-light_source2;l1=sqrt(sum(v1.^2));l2=sqrt(sum(v2.^2));cos1=cos(l1*2.5);cos2=cos(l2*2.5);skewing=abs(cos1+cos2);color_bar(n,1:3)=ones(1,3).*(skewing/2); n=n+1;endcolormap(color_bar)colorbarend
end

这篇关于matlab 光的衍射图像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583684

相关文章

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

libsvm在matlab中的使用方法

原文地址:libsvm在matlab中的使用方法 作者: lwenqu_8lbsk 前段时间,gyp326曾在论坛里问libsvm如何在matlab中使用,我还奇怪,认为libsvm是C的程序,应该不能。没想到今天又有人问道,难道matlab真的能运行libsvm。我到官方网站看了下,原来,真的提供了matlab的使用接口。 接口下载在: http://www.csie.ntu.edu.