python打造光斑处理系统5:查看光强分布

文章目录

    • 光斑分布
    • 峰值和均值
    • 三维分布

光斑处理:python处理高斯光束的图像
光斑处理系统:程序框架🌟打开图像🌟参数对话框/伪彩映射🌟裁切ROI

光斑分布

光斑作为图像而言,其表现能力是有限的,因为相比于其形状,我们有时更关心其强度。而为了表现其强度,则有许多种不同的方案

  1. ‘cross’ 对每行或者每列挑选出峰值位置和行列的均值,作为其代表性的数据
  2. ‘3d’ 直接把强度作为第三个维度,绘制三维的光斑数据
  3. ‘deg’ 用过质心的线段对光斑进行等分,并得到每条线段上光斑的强度分布
  4. ‘click’ 点击两点连线,并显示这条线上的强度分布

其中,click模式与之前图像切割时需要用到相同的交互,故放在一起实现;而deg模式涉及到比较复杂的插值过程,所以下面先实现前两种模式。

峰值和均值

根据上述几种模式,可设置下面三个参数,表示分布模式、起始角度和角度分割数。

    def init_param(self):
        # 前面省略
        # 光斑分布
        self.distriPara = {
            "mode":"cross",
            "stDeg":0,
            "numDeg":4
        }

而光斑分布的整体框架如下

    def img_distri(self):
        flag, distriPara = inputValue(self.distriPara)
        if not flag:
            return
        for key in distriPara:
            if key != None:
                self.distriPara[key] = distriPara[key]
        if distriPara['mode'] == 'cross':
            self.drawCross()
        elif distriPara['mode'] == "3d":
            self.drawPlot3D()
        elif distriPara['mode'] == "deg":
            self.drawPlotDeg()

对于cross模式而言,起始并不需要参数,只需求得水平方向和竖直方向的最大值和均值即可,相应地绘图函数如下

    def drawCross(self):
        datas = {
            "xMax": np.max(self.img, 0),
            "yMax": np.max(self.img, 1),
            "xMean": np.mean(self.img, 0),
            "yMean": np.mean(self.img, 1)
        }
        self.fig.clf()
        for i,key in enumerate(datas,1):
            ax = self.fig.add_subplot(2,2,i)
            ys = datas[key]
            ax.plot(np.arange(len(ys)), ys, label=key)
            ax.legend()
        self.canvas.draw()

结果如下

在这里插入图片描述

三维分布

画出一个光斑的三维分布,要远比想象中更简单,只需一个函数就可以轻松做到

    def drawPlot3D(self):
        m,n = self.img.shape
        xAxis,yAxis = np.indices([n,m])
        self.fig.clf()
        ax = self.fig.add_subplot(111, projection='3d')
        ax.plot_surface(xAxis,yAxis,self.img)
        self.canvas.draw()

其中 m , n m,n m,n是图像尺寸,xAxis, yAxis是坐标轴网格,在清楚现有图像后,新建一个三维坐标轴,并将图像灰度以三维形式展示出来,效果如下。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/364593.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Springboot-前后端分离——第三篇(三层架构与控制反转(IOC)-依赖注入(DI)的学习)

本篇主要对ControllerServiceDAO三层结构以及控制反转(IOC)与DI(依赖注入)进行总结。 目录 一、三层架构: Controller/Service/DAO简介: 二、控制反转(IOC)-依赖注入(DI): 概念介绍: DOC与…

EtherCAT FP介绍系列文章—UDP gateway

EtherCAT主站上的Mailbox Gateway功能,可以用于将EtherCAT mailbox相关协议从外部设备的工具通过邮箱网关路由到EtherCAT从站设备。在EtherCAT规范中定义的所有邮箱协议在此功能中都可用,例如CoE, FoE, VoE, SoE。 但是,这里特别注意的是Mai…

Autonomous_Exploration_Development_Environment的local_planner学习笔记

1.程序下载网址:https://github.com/HongbiaoZ/autonomous_exploration_development_environment 2.相关参考资料: https://blog.csdn.net/lizjiwei/article/details/124437157 Matlab用采样的离散点做前向模拟三次样条生成路径点-CSDN博客 CMU团队开…

Hbase-2.4.11_hadoop-3.1.3集群_大数据集群_SSH修改默认端口22为其他端口---记录025_大数据工作笔记0185

其实修改起来非常简单,但是在大数据集群中,使用到了很多的脚步,也需要修改, 这里把,大数据集群,整体如何修改SSH端口,为22022,进行总结一下: 0.hbase-2.4.11的话,hbase集群修改默认SSH端口22,修改成22022,需要修改 需要修改/opt/module/hbase-2.4.11/conf/hbase-env.sh 这里…

RocketMQ—RocketMQ快速入门

RocketMQ—RocketMQ快速入门 RocketMQ提供了发送多种发送消息的模式,例如同步消息,异步消息,顺序消息,延迟消息,事务消息等。 消息发送和监听的流程 消息生产者 创建消息生产者producer,并制定生产者组…

element-ui button 仿写 demo

基于上篇 button 源码分享写了一个简单 demo&#xff0c;在写 demo 的过程中&#xff0c;又发现了一个小细节&#xff0c;分享一下&#xff1a; 1、组件部分&#xff1a; <template><buttonclass"yss-button"click"handleClick":class"[ty…

基于python+django,我开发了一款药店信息管理系统

功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。 功能包括&#xff1a;药品管理、分类管理、顾客管理、用户管理、日志管理、系统信息模块。 代码结构 server目录是后端代码web目录是前端代码 部署运行…

Java的JVM学习一

一、java中的内存结构如何划分 栈和堆的区别&#xff1a; 栈负责处理运行&#xff0c;堆负债处理存储。 区域名称作用虚拟机栈用于存储正在执行的每个Java方法&#xff0c;以及其方法的局部变量表等。局部变量表存放了便器可知长度的各种基本数据类型&#xff0c;对象引用&am…

jmerter-01安装与界面介绍

文章目录 jmeter安装 jmeter安装 1.配置JDK环境 Jmeter到目前为止只支持java 8 2.解压JMeter安装包 就可以双击jmeter.bat 运行启动 3.运行过程中&#xff0c;不要关掉小黑窗 这个黑框不要关闭 jmeter图示

小程序:类型三级分类

一、效果图片 二、代码 <template><view class"customPosition"><!-- header --><navBar :border"false" :hasBack"true" :title"titleName"></navBar><!-- 查询 --><view class"search…

极易录用!并行结构!GAF-PCNN-AT格拉姆角场和双通道PCNN融合注意力机制的分类/故障识别程序!Excel导入,直接运行

适用平台&#xff1a;Matlab2023版本及以上 本程序参考中文EI期刊《电力自动化设备》12月29号网络首发文献&#xff1a;《基于格拉姆角场与并行CNN的并网逆变器开关管健康诊断》,此外&#xff0c;在此基础上进一步对模型进行复现并改进&#xff0c;该论文推出时间短&#xff0…

HTML -- 常用标签

标签 表示HTML网页内容的一个最基本的组织单元&#xff0c;类似于语文中的标点符号&#xff0c; 标签的作用&#xff1a;告诉浏览器当前标签中的内容是什么&#xff0c;以什么格式在页面中进行呈现 单标签 单标签&#xff08;只有一个标签名的标签&#xff09;的标签格式&…

Open CASCADE学习|球面上曲线长度计算

球和球面是数学和物理学中非常重要的概念&#xff0c;它们在许多领域都有广泛的应用。 球面是指所有与固定点等距离的点的集合&#xff0c;这个固定点被称为球心&#xff0c;而这个等距离的长度就是球的半径。球面是一个二维曲面&#xff0c;它是三维空间中点与距离之间关系的…

2024年美赛F题Problem F Reducing Illegal Wildlife Trade减少非法野生动物贸易的完整思路代码分享

非法的野生动物贸易会对我们的环境产生负面影响&#xff0c;并威胁到全球的生物多样性。据估计&#xff0c;它每年涉及高达265亿美元&#xff0c;被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目&#xff0c;旨在显著减少非法野生动物贸易。你的目标是说服一个…

IP协议(2) 和 数据链路层协议基础

IP协议续 1.路由选择 在复杂的网络结构中,我们需要找到一个通往终点的路线,这就是路由选择 举个例子:我们在没有手机导航之前,想去一个地方得是到一个地方问一下路的方式最终找到目的地 路由的过程,其实就是样子问路的过程 1.当IP数据包到达路由器的时候,会查看目的IP 2.路由器…

oracle 19c上安装样例数据库

样例schema的分类 HR: Human Resources OE: Order Entry PM: Product Media IX: Information Exchange SH: Sales History BI: Business Intelligence 安装样例数据库 1&#xff1a;HR的安装&#xff0c;通过dbca时候 2&#xff1a;HR的安装&#xff0c;安装完数据库后&#…

Jenkins+Allure+Pytest的持续集成

一、配置 allure 环境变量 1、下载 allure是一个命令行工具&#xff0c;可以去 github 下载最新版&#xff1a;https://github.com/allure-framework/allure2/releases 2、解压到本地 3、配置环境变量 复制路径如&#xff1a;F:\allure-2.13.7\bin 环境变量、Path、添加 F:\a…

docker中三种常用的持久化数据的方式

文章目录 介绍1.docker run -v2.volumes3.bind mounts 介绍 “前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。” 在Docker中&#xff0c;有以下三种常用的持久化数据的方式&#xff0c;可…

读千脑智能笔记01_新皮质

作者简介 1988年至1992年&#xff0c;创造了平板电脑GridPad&#xff0c;它属于第一批平板电脑 1992年&#xff0c;成立了Palm公司&#xff0c;之后在长达10年的时间内&#xff0c;设计了一些最早的掌上电脑和智能手机&#xff0c;如PalmPilot和Treo 在2002年创立了红木神经科学…

Camunda ScriptTask SendTask ReceiveTask操作

文章目录 开始脚本任务(ScriptTask)发送任务(SendTask)接收任务(ReceiveTask)流程图xml 开始 前面我们已经介绍了Camunda最基本的操作和常见的监听器&#xff0c;如果不熟悉Camunda&#xff0c;可以先看一下&#xff0c;方便搭建环境&#xff0c;亲手测试。 Camunda组件与服务…