matlab练习程序(渲染三原色)

2023-11-11

这里我用的空间是x向右为正,y向下为正,z向屏幕里面为正。相当于标准右手系绕x轴旋转了180度。

将三个点光源放在

r = [0.3,0,0.5];
g = [0.3,-0.5*cos(pi/6),-0.5*sin(pi/6)];
b = [0.3,0.5*cos(pi/6),-0.5*sin(pi/6)];

这三个位置上,向四周发射光线,取光线到y-z平面的模的倒数作为光的强度。

图像如下:

程序如下:

clear all;
close all;
clc;

r = [0.3,0,0.5];
g = [0.3,-0.5*cos(pi/6),-0.5*sin(pi/6)];
b = [0.3,0.5*cos(pi/6),-0.5*sin(pi/6)];
imgr1=[];imgr2=[];
imgg1=[];imgg2=[];
imgb1=[];imgb2=[];
for y=-1:0.004:1
   imgr1=[];imgg1=[];imgb1=[];
   for z=-1:0.004:1       
       pm=[0,y,z];         
       lightr=pm-r;
       lightg=pm-g;
       lightb=pm-b;
       imgr=1/norm(lightr);
       imgg=1/norm(lightg);
       imgb=1/norm(lightb);
       
       imgr1=[imgr1 imgr];
       imgg1=[imgg1 imgg];      
       imgb1=[imgb1 imgb];           
   end
   imgr2=[imgr2;imgr1];
   imgg2=[imgg2;imgg1];  
   imgb2=[imgb2;imgb1]; 
end

[h w]=size(imgr2);

img=zeros(h,w,3);
img(:,:,1) = mat2gray(imgr2);
img(:,:,2) = mat2gray(imgg2);
img(:,:,3) = mat2gray(imgb2);
imshow(img)
imwrite(img,'img.png')

 

转载于:https://www.cnblogs.com/tiandsp/p/8947429.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab练习程序(渲染三原色) 的相关文章

  • 如何在 MATLAB 中可视化球体的交集?

    似乎这个问题在一些地方被问过 包括SO https stackoverflow com questions 35130336 draws the intersecting volume of two spheres in matlab 我最
  • 如何在Matlab中自定义轮廓线?

    我正在准备一个等高线图 我应该在其中突出显示特定级别的等高线 例如 我的轮廓线值位于 1 和 1 之间 我想突出显示与值 0 相对应的线 我尝试使用以下过程来执行此操作 M c contourf longitude latitude del
  • MATLAB 中时间戳过滤器的优化 - 处理非常大的数据集

    我正在 MATLAB 中编写一个程序 必须使用 MATLAB 并且不能真正使用 MEX 来过滤大量数据 我需要实现的过滤器之一要求我将时间戳向量与其他时间戳不会出现的已知 不良 时间列表进行比较 一个典型的时间戳向量有大约 2 000 00
  • Matlab PARFOR 循环可以通过编程方式打开/关闭吗?

    有一个关于 MATLAB 中 parfor 的简单问题 我想在程序中设置一个标志 以便在 parfor 和常规 for 循环之间进行更改 基本上 我需要此功能 以便我的代码的某些部分可以在 调试 模式下更新图形 然后当关闭该标志时 使用 p
  • MATLAB 滚动图

    我有一个脑电图数据库 我想绘制它 数据库是一个19 1000 134的矩阵 其中 19 是通道数 在第一种方法中 我只使用一个渠道 1000 个样本大小 采样率为 500 Hz 时为 1000 个点 即 2 秒数据 134 epochs的数
  • Matlab中转换数据类型的有效方法(double vs. im2double)

    我想将真彩色图像转换为双精度 据我所知有两种方法可以做到这一点 double rgb img im2double rgb img 哪一种效率更高 谢谢 他们都是不同的 im2double将图像的范围转换为0 1如果数据类型是uint8 or
  • Matlab - 如果值包含xxx,则删除元胞数组中的行

    在 Matlab 中 如何删除包含变量字符串的元胞数组中的元胞 假设我的元胞数组是 C svnTrunk RadarLib radarlb utilities scatteredInterpolant m C svnTrunk RadarL
  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • Matlab:保存后翻转图例顺序和图例重叠图

    我正在尝试根据以下内容反转我的图例条目顺序matlab条形图中图例颜色的逆序 https stackoverflow com questions 31178005 reverse ordering of legend colors in m
  • Matlab 字段名索引[重复]

    这个问题在这里已经有答案了 所以我有一个包含多个表的元胞数组 我试图访问表的第一个列名称 c table1 table2 table3 以下两行都给了我错误 fieldnames c 1 1 fieldnames c 1 1 Error i
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • MATLAB 教程中的 SIFT 实现

    我正在寻找 MATLAB 中的一些基本 SIFT 实现 我需要从第一原则来写它 另外 我正在寻找一些可以解释程序中发生的事情的内容 Vedali 的代码和 David Lowe 的代码超出了我的理解范围 如果您是 Matlab 用户 您一定
  • Matlab 和 Python 中的优化算法(dog-leg trust-region)

    我正在尝试使用 Matlab 和 Python 中的狗腿信赖域算法求解一组非线性方程 在Matlab中有fsolve https www mathworks com help optim ug fsolve html其中此算法是默认算法 而
  • 如何告诉 mex 链接到 /usr/lib 中的 libstdc++.so.6 而不是 MATLAB 目录中的 libstdc++.so.6?

    现在 MATLAB 2012a 中的 mex 仅正式支持 gcc 4 4 6 但我想使用 gcc 4 7 风险自负 现在如果我直接用 mex 编译一些东西 它会抱怨 usr lib gcc i686 linux gnu 4 7 cc1plu
  • 如何使用 MATLAB 的 substruct 函数创建表示使用“end”的引用的结构?

    我想使用substruct http www mathworks com help matlab ref substruct html函数创建一个结构体以供使用subsref 目的是使用索引字符串subsref而不是通常的 符号 因为我正在
  • 如何在放置颜色条后保持子图大小不变

    假设我们有一个 1 2 子图 我们在其中绘制了一些图形 如下所示 subplot 1 2 1 surf peaks 20 subplot 1 2 2 surf peaks 20 然后我们要添加一个颜色条 colorbar 我不希望结果中的正
  • MATLAB - 冲浪图数据结构

    我用两种不同的方法进行了计算 对于这些计算 我改变了 2 个参数 x 和 y 最后 我计算了每种变体的两种方法之间的 误差 现在我想根据结果创建 3D 曲面图 x gt on x axis y gt on y axis Error gt o
  • 如何在文本集中创建所有字符组合?

    例如 我有这样的文本集 第 1 栏 a b 第 2 栏 l m n 第 3 栏 v w x y 我想将它们组合起来以获得如下输出 alv alw alx aly amv amw amx amy 这将输出 24 种文本组合 如果我只使用前两列
  • 在matlab中绘制给定区域内(两个圆之间)的向量场

    我想在 Matlab 中绘制下面的向量场 u cos x x 0 y y 0 v sin x x 0 y y 0 我可以在网格中轻松完成 例如 x 和 y 方向从 2 到 2 x 0 2 y 0 1 x y meshgrid 2 0 2 2
  • 给定协方差矩阵,在Matlab中生成高斯随机变量

    Given a M x M期望的协方差 R 以及所需数量的样本向量 N计算一个N x M高斯随机向量 X在普通 MATLAB 中 即不能使用r mvnrnd MU SIGMA cases 不太确定如何解决这个问题 通常你需要一个协方差并且意

随机推荐

  • Impala链接报错

    impala集成Kerberos链接报错 操作命令 impala shell i 10 250 122 40 19005 k s e3base Error connecting TTransportException Could not s
  • Windows 编程概述(使用 C++)

    Windows 编程概述 使用 C 1 命令行 控制台 应用程序 2 本机桌面客户端应用程序 3 COM 组件 4 通用 Windows 平台应用程序 5 桌面桥 6 游戏 7 SQL Server 数据库客户端 8 Windows设备驱动
  • Qt:QProcess实现cmd命令,带参数.exe程序

    首先引入都文件 include
  • C#系列-set,

    using System public class cls private int book 定义一个域 也可以叫变量 只是面向对像里都这么叫 使用起来也更加方便 public int Book get Console WriteLine
  • DateTimeFormatter、LocalDateTime 的使用

    由于SimpleDateFormat是线程不安全的 所以在多线程中可以使用线程安全的DateTimeFormatter 代替 SimpleDateFormat 阿里巴巴java开发手册推荐 如果是 JDK8 的应用 可以使用 Instant
  • printk,printf 打印调试

    includelinux kernel h define KERN EMERG lt 0 gt 紧急事件消息 系统崩溃之前提示 表示系统不可用 define KERN ALERT lt 1 gt 报告消息 表示必须立即采取措施 define
  • Docker----DockerSwarm集群环境弹性服务动态扩缩容

    详细内容见 DevOps技术社区文章 Docker DockerSwarm集群环境弹性服务动态扩缩容
  • 新词发现

    新词发现是 NLP 的基础任务之一 通过对已有语料进行挖掘 从中识别出新词 新词发现也可称为未登录词识别 严格来讲 新词是指随时代发展而新出现或旧词新用的词语 同时 我认为特定领域的专有名词也可归属于新词的范畴 何出此言呢 通常我们会很容易
  • osgfbo(六)从pass的角度考虑,改写fbo(二)

    什么是pass 这个问题 看似简单 也让我头疼 看了osgdefered pass定义为osg Camera 杨石兴的osg视频教程定义为osg Group 我认为一个passRoot可以定义为一个Group 包含三部分 到目前pass为止
  • RT-Thread Smart 用户态开发体验

    背景 RT Thread Smart 是基于 RT Thread 操作系统上的混合操作系统 它把应用从内核中独立出来 形成独立的用户态应用程序 并具备独立的地址空间 自 V5 0 0 起 rt smart 分支已合并至 master 分支上
  • QT从入门到放弃------制作QT界面

    QT从入门到放弃 一 制作QT界面 创建工程 点击New Project 依次点击下图的Application QT Widgets Application Choose 根据自己的需求选择工程名和存放路径 路径千万不要有中文 路径千万不要
  • QT从入门到实战x篇_01_如何在qtcreator中创建一个程序?(MSVC编译器)

    1 按照如下顺序选择 我这里没有选择console的是因为我只是自己创建界面 不需要控制台的出现 2 命名及选择地址 选择下一步 3 选择基类 是否需要系统自动生成ui文件 基类中有三种选项分别为QWideget QMainWindow Q
  • Linux三级 学习笔记(二)计算机体系结构与操作系统-操作系统

    1 4 操作系统的基本概念 1 4 1 操作系统的定义和作用 操作系统的作用可以从用户和系统俩个不同角度来看 用户视角 系统视角 1 用户视角 操作系统为用户提供的服务有 程序开发 程序运行 I O设备访问 文件访问 系统资源访问 错误检测
  • App 抓包提示网络异常怎么破?

    背景 当你测试 App 的时候 想要通过 Fiddler Charles 等工具抓包看下 https 请求的数据情况 发现大部分的 App 都提示网络异常 无数据等等信息 以 贝壳找房 为例 Fiddler 中看到的请求是这样的 你可能开始
  • 已安装 MySQL,但执行 mysql 命令提示命令找不到!

    因个人需要 在阿里购买了一个轻量应用服务器 服务器配好 LAMP 环境 但奇怪是的我想登录 MySql 却提示命令找不到 查看 MySQL 运行状态 却是 Active running 提交了阿里工单 可是感觉客服是答非所问 我也是很无奈
  • Windows Terminal 和 WSL 安装及配置

    一 打开开发者选项和传递优化 二 在Microsoft Store安装Windows Terminal和Ubuntu子系统 三 配置 Windows Terminal配置 打开settings json配置文件 修改如下 此项用来配置打开W
  • 重磅!瞄准 Web 3.0,谷歌云推出专为区块链服务的 Blockchain Node Engine!

    本文由 Cloud Ace 整理发布 更多内容请访问 Cloud Ace 官网 区块链技术正在为世界各地的消费者和企业带来巨大的创新和价值创造 随着技术变得越来越主流 公司需要可扩展 安全和可持续的基础设施来发展业务并支持他们的网络 谷歌云
  • LeetCode-1124. 表现良好的最长时间段【哈希表,前缀和,单调栈】

    LeetCode 1124 表现良好的最长时间段 哈希表 前缀和 单调栈 题目描述 解题思路一 查字典 cur是当前的前缀和 劳累与不劳累天数之差 向前遍历 有两种情况 情况一 若cur大于0则是 0 i 的劳累与不劳累天数之差一定最大 记
  • Angular知识整合一:Angular中的组件和一些基本概念

    什么是Angular Angular是一个基于TypeScript构建的开发平台 它包括一下三个部分 一个基于组件的库 一组涵盖路由 表单管理 客户端服务端通信等各种功能继承的库 一套开发 构建 测试 更新代码的工具 Angular中的知识
  • matlab练习程序(渲染三原色)

    这里我用的空间是x向右为正 y向下为正 z向屏幕里面为正 相当于标准右手系绕x轴旋转了180度 将三个点光源放在 r 0 3 0 0 5 g 0 3 0 5 cos pi 6 0 5 sin pi 6 b 0 3 0 5 cos pi 6