当前位置: 首页 > news >正文

相机参数与图像处理技术解析

01. 相机内参和外参的含义?如果将图像放大两倍,内外参如何变化?

  • 相机有两个最基础的数据:内参(Instrinsics)和外参(Extrinsics),内参主要描述的是相机的CCD/CMOS感光片尺寸/分辨率以及光学镜头的系数,外参主要描述的是相机在世界坐标系下的摆放位置和朝向角度。

  • 参考:https://zhuanlan.zhihu.com/p/646310465

  • 相机的内参和外参是用于描述相机如何捕捉三维世界并将其投影到二维图像平面上的参数。

    1. 内参(Intrinsic Parameters):

      • 内参是相机自身的属性,与场景无关。它包括焦距(focal length)、主点(principal point,图像中心的坐标)、畸变系数(distortion coefficients,描述镜头畸变如径向和切向畸变)等。

      • 焦距和图像传感器的尺寸共同决定了视场角(Field of View, FOV)。

      • 主点通常接近图像中心。

      • 内参矩阵一般形式为:
        [
        K = [ f x 0 c x 0 f y c y 0 0 1 ] K = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} K= fx000fy0cxcy1
        ]
        其中 KaTeX parse error: Can't use function '\(' in math mode at position 1: \̲(̲f_x, f_y) 是焦距在图像平面上的x轴和y轴的比例,( c x , c y c_x, c_y cx,cy) 是主点的坐标。

    2. 外参(Extrinsic Parameters):

      • 外参描述的是相机相对于世界坐标系的位置和方向。它由旋转矩阵(Rotation matrix)和平移向量(Translation vector)组成,这些参数定义了从世界坐标系到相机坐标系的转换。

      • 外参矩阵通常表示为:
        KaTeX parse error: Undefined control sequence: \[ at position 2: \̲[̲ \begin{bmatrix…
        其中 ( R R R) 是一个3x3的旋转矩阵,( t t t) 是一个3x1的平移向量。

    如果将图像放大两倍,内外参的变化如下:

    • 内参变化:

      • 焦距 ( f x , f y f_x, f_y fx,fy) 通常不会改变,因为它是基于相机的物理属性。但是,图像坐标系的比例变化了,因此主点 KaTeX parse error: Can't use function '\(' in math mode at position 1: \̲(̲c_x, c_y) 需要调整以反映新的图像中心。如果原图中 KaTeX parse error: Can't use function '\(' in math mode at position 1: \̲(̲c_x, c_y) 是原点,放大后它们将变为原来的两倍。

      • 新的内参矩阵将是:
        [
        K ′ = [ f x 0 2 c x 0 f y 2 c y 0 0 1 ] K' = \begin{bmatrix} f_x & 0 & 2c_x \\ 0 & f_y & 2c_y \\ 0 & 0 & 1 \end{bmatrix} K= fx000fy02cx2cy1
        ]

    • 外参变化:

      • 外参(旋转矩阵和平移向量)不会因为图像尺寸的改变而改变,因为它们描述的是相机与世界坐标系之间的物理关系,与图像的尺寸无关。

    LSS(Lift, Splat, Shoot)

    https://github.com/nv-tlabs/lift-splat-shoot

    是一个用于三维环境感知和环境表示的视觉感知系统,主要应用于自动驾驶领域。这个方法是一种用于从二维图像直接构建三维环境表示的深度学习算法。它主要通过以下三个步骤来实现:

    1. Lift(提升):

      • 这一步涉及到将二维像素“提升”到三维空间中。算法使用从图像中提取的深度信息将每个像素点映射到一个三维点上。这种映射通常依赖于相机的内参和外参,通过这些参数,可以将二维图像坐标转换为三维世界坐标。
    2. Splat(喷洒):

      • 在“喷洒”步骤中,所提升的三维点被映射到一个离散的三维空间(通常是体素网格)中。这一步是一种数据结构转换,它把连续的三维点云转换为离散的体素表示,这种表示更适合用于随后的处理步骤如卷积神经网络。
    3. Shoot(射击):

      • 最后一步是“射击”,这里利用三维卷积神经网络处理提升和喷洒后的数据,从而提取用于任务的特征。例如,自动驾驶车辆可能需要识别和分类不同的道路用户(如行人、车辆)、道路标记和其他关键的环境特征。

    LSS方法的一个主要优势是它能够直接从图像数据中构建出三维场景的表示,这有助于自动驾驶系统更好地理解和导航其周围的环境。此外,它通过利用卷积神经网络,可以在保持高度准确性的同时实现高效的处理速度。这种方法在自动驾驶技术中具有重要的应用前景,尤其是在需要精确和实时的三维环境感知和决策支持的情况下。

02. 坐标系的变换

  • BEV训练数据集的世界坐标系, 比如nuScenes地图,它的世界坐标系是图片坐标系,原点在图片左下角,单位是米。数据集中会根据时间序列给出车辆的瞬时位置,也就是在这个图片上的XY。

  • BEV里,这个Ego是特指车辆本身,它是用来描述摄像机/激光雷达(Lidar,light detection and ranging)/毫米波雷达(一般代码里就简称为Radar)/IMU在车身上的安装位置(单位默认都是米)和朝向角度,坐标原点一般是车身中间,外参(Extrinsics Matrix)主要就是描述这个坐标系的。

  • 相机坐标系,坐标原点在CCD/CMOS感光片的中央,单位是像素,内参(Intrinsics Matrix)主要就是描述这个坐标系的。

  • 照片坐标系,坐标原点在图片的左上角,单位是像素,横纵坐标轴一般不写成XY,而是uv。

  • 照片中的像素位置转换到世界坐标系时,要经历:Image_to_Camera, Camera_to_Ego, Ego_to_World;Camera_to_Image通常就是Intrinsics参数矩阵,Ego_to_Camera就是Extrinsics参数矩阵。

03. 放射变换与逆投影变换分别是什么

  • 仿射变换: 仿射变换是一种线性变换,保持了直线的平行性和比例关系。它可以用于将一个二维平面上的点映射到另一个二维平面上。仿射变换可以通过一个矩阵乘法和一个平移向量来表示。它包括平移、旋转、缩放和剪切等操作。在计算机视觉领域,仿射变换常用于图像的平移、旋转、缩放和仿射校正等操作。

  • 逆投影变换: 逆投影变换是指通过相机内参和外参,将图像上的点投影到三维空间中的过程。它是相机成像过程的逆过程。逆投影变换可以用于将图像上的点转换为三维空间中的点坐标。逆投影变换的计算需要相机的内参矩阵、外参矩阵和图像上的点坐标。在计算机视觉和计算机图形学中,逆投影变换常用于三维重建、相机姿态估计和虚拟现实等应用。

import numpy as np
import cv2# 定义相机内参矩阵 K
K = np.array([[1000, 0, 500], [0, 1000, 300], [0, 0, 1]], dtype=np.float32)# 定义相机外参的旋转矩阵 R(在此为单位矩阵)
R = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]], dtype=np.float32)# 定义相机外参的平移向量 T
T = np.array([1, 2, 3], dtype=np.float32)# 定义图像上的点坐标 uv(二维点)
uv = np.array([[200, 300], [400, 500]], dtype=np.float32)# 计算 Rc2w * K 的逆矩阵
Rc2w_invK = np.linalg.inv(np.dot(R, K))# 将 uv 点扩展成齐次坐标,并进行逆投影变换
H = np.dot(Rc2w_invK, np.append(uv, np.ones((uv.shape[0], 1)), axis=1).T)# 计算世界坐标 Pxyz(假设深度为 T[2])
Pxyz = H * (T[2] / H[2]) - T[:2]# 定义仿射变换矩阵 M
M = np.array([[1, 0, 100], [0, 1, 50]], dtype=np.float32)# 加载图像(假设 image 是事先加载的图像)
# image = cv2.imread('path_to_your_image.jpg')  # 替换为实际图像路径# 进行仿射变换
# output = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))  # 假设 image 是加载的图像# 将每一步结果打印出来以进行验证(可选)
print("相机内参矩阵 K:\n", K)
print("旋转矩阵 R:\n", R)
print("平移向量 T:\n", T)
print("图像点坐标 uv:\n", uv)
print("逆 Rc2w * K:\n", Rc2w_invK)
print("齐次坐标 H:\n", H)
print("世界坐标 Pxyz:\n", Pxyz)
print("仿射变换矩阵 M:\n", M)

相关文章:

相机参数与图像处理技术解析

01. 相机内参和外参的含义?如果将图像放大两倍,内外参如何变化? 相机有两个最基础的数据:内参(Instrinsics)和外参(Extrinsics),内参主要描述的是相机的CCD/CMOS感光片尺寸/分辨率以及光学镜头的系数,外参主…...

Ubuntu20.04安装Prometheus监控系统

环境准备: 服务器名称内网IP公网IPPrometheus服务器192.168.0.23047.119.21.167Grafana服务器192.168.0.23147.119.22.8被监控服务器192.168.0.23247.119.22.82 更改主机名方便辨认 hostnamectl set-hostname prometheus hostnamectl set-hostname grafana hostn…...

kafka consumer客户端消费逻辑解析

kafka consumer客户端消费逻辑解析 一、主要步骤二、提交策略【步骤2代码解析】【提交策略总结】 三、拉取策略四、消费策略【代码解析】【消费策略总结】 一、主要步骤 这是kafka客户端拉取消息的入口,有4个主要部分 1、启动后的准备 consumer线程启动后&#xff…...

打印机出现多个副本无法删除

打印机出现多个副本很烦人,尤其是在打印机在局域网内被多个主机共享的时候,一旦出现新的副本,原有副本全都变成脱机状态,其他电脑连接的共享打印机是原来的副本,所以要重新设置打印机共享,很烦人。 想要删…...

FlinkSQL 开发经验分享

作者:汤包 最近做了几个实时数据开发需求,也不可避免地在使用 Flink 的过程中遇到了一些问题,比如数据倾斜导致的反压、interval join、开窗导致的水位线失效等问题,通过思考并解决这些问题,加深了我对 Flink 原理与机…...

JVM原理(十二):JVM虚拟机类加载过程

一个类型从被加载到虚拟机内存中开始,到卸载为止,它的整个生命周期将会经过 加载、验证、准备、解析、初始化、使用、卸载七个阶段。其中 验证、准备、解析三个部分统称为 连接 1. 加载 加载是整个类加载的一个过程。在加载阶段,Java虚拟机…...

Apipost接口测试工具的原理及应用详解(三)

本系列文章简介: 随着软件行业的快速发展,API(应用程序编程接口)作为不同软件组件之间通信的桥梁,其重要性日益凸显。API的质量直接关系到软件系统的稳定性、性能和用户体验。因此,对API进行严格的测试成为软件开发过程中不可或缺的一环。在众多API测试工具中,Apipost凭…...

unity里鼠标位置是否在物体上。

1. 使用Raycast 如果你的图片是在UI Canvas上,可以使用Raycast来检测鼠标点击是否在图片上。 using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class ImageClickChecker : MonoBehaviour { public Image targetImage; voi…...

Java知识点大纲

文章目录 第一阶段:JavaSE1、面向对象编程(基础)1)面向过程和面向对象区别2)类和对象的概述3)类的属性和方法4)创建对象内存分析5)构造方法(Construtor)及其重载6)对象类型的参数传递7)this关键字详解8)static关键字详解9)局部代码块、构造代码块和静态代码块10)pac…...

【Kafka】记录一次Kafka消费者重复消费问题

文章目录 现象业务背景排查过程Push与Pull 现象 用户反馈消费者出现消息积压,并且通过日志看,一直重复消费,且没有报错日志。 业务背景 用户的消费者是一个将文件做Embedding的任务,(由于AI技术的兴起,大…...

Android使用http加载自建服务器静态网页

最终效果如下图,成功加载了电脑端的静态网页内容,这是一个xml文件。 电脑端搭建http服务器 使用“Apache Http Server”,下载地址是:https://httpd.apache.org/download.cgi。 安装启动步骤,参考:Apach…...

python解耦重构,提高程序维护性

一、重构思想 思路来源 java spring设计模式学习,强调低耦合的思想,通过解耦来提高程序的可维护性。 二、代码重构 解决方案 通过单独配置文件来控制变量的改变。 spring的话可以读取xml或者是springboot 读取application.properties 来获取变量值。…...

深入解析 Laravel 事件系统:架构、实现与应用

Laravel 的事件系统是框架中一个强大且灵活的功能,它允许开发者在应用程序中定义和使用自定义事件和监听器。这个系统基于观察者模式,使得代码解耦和可维护性大大提高。在本文中,我们将深入探讨 Laravel 事件系统的工作原理、如何实现自定义事…...

视频怎么制作gif动态图片?GIF制作方法分享

视频怎么制作gif动态图片?视频制作GIF动态图片,不仅保留了视频的生动瞬间,还赋予了图像循环播放的魔力。这一技能不仅让创意表达更加丰富多彩,还极大地提升了视觉传播的效率和趣味性。在快节奏的数字时代,GIF动图以其小…...

js 使用 lodash-es 检测某个值是否是函数

import { isFunction } from lodash-eslet isA isFunction(() > {}) console.log(isA) //true https://www.lodashjs.com/docs/lodash.isFunction#_isfunctionvalue https://lodash.com/docs/4.17.15#isFunction 人工智能学习网站 https://chat.xutongbao.top...

[go-zero] goctl 生成api和rpc

文章目录 1.goctl 概述2.go-zero 需要安装的组件3.生成 api4.生成 rpc 1.goctl 概述 goctl支持多种rpc,较为流行的是google开源的grpc,这里主要介绍goctl rpc protoc的代码生成与使用。protoc是grpc的命令,作用是将proto buffer文件转化为相…...

docker -run hello-world超时

主要原因就是尝试拉取库的时候没有从阿里云镜像里拉&#xff0c;所以设置一下就好了 这里使用的是ubuntu系统&#xff08;命令行下逐行敲就行了&#xff09; sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": [&quo…...

拓扑学习系列(8)黎曼度量曲面与高斯曲率

黎曼度量 黎曼度量是黎曼几何中的一个重要概念&#xff0c;它用来描述流形上的切向量之间的长度和角度。黎曼度量赋予了流形一个内积结构&#xff0c;使得我们可以定义切向量的长度、夹角和内积&#xff0c;从而引入了度量空间的概念。让我更详细地解释一下黎曼度量&#xff1…...

汽车IVI中控开发入门及进阶(三十四):i.MX linux BSP

开发板: 汽车IVI中控开发入门及进阶(三十三):i.MX linux开发之开发板-CSDN博客 linux 开发项目: 汽车IVI中控开发入门及进阶(三十二):i.MX linux开发之Yocto-CSDN博客 前言: 有了开发板,linux BSP编译项目yocto,接下来就可以在i.MX平台上构建和安装i.MX Linux …...

【Python机器学习】算法链与管道——构建管道

目录 1、首先&#xff0c;我们构建一个由步骤列表组成的管道对象。 2、向任何其他scikit-learn估计器一样来拟合这个管道 3、调用pipe.score 我们来看下如何使用Pipeline类来表示在使用MinMaxScaler缩放数据后&#xff0c;再训练一个SVM的工作流程&#xff08;暂时不用网格搜…...

Postman 高级用法学习

Postman 高级用法 Postman 是一款强大的 API 调试和开发工具&#xff0c;广泛应用于 API 开发、测试、调试和自动化流程中。除了基本的 API 请求发送和响应查看功能&#xff0c;Postman 还提供了许多高级功能。以下是详细的讲解&#xff0c;包括具体示例和操作步骤。 一、环境…...

从新手到高手:Scala函数式编程完全指南,Scala 访问修饰符(6)

1、Scala 访问修饰符 Scala 访问修饰符基本和Java的一样&#xff0c;分别有&#xff1a;private&#xff0c;protected&#xff0c;public。 如果没有指定访问修饰符&#xff0c;默认情况下&#xff0c;Scala 对象的访问级别都是 public。 Scala 中的 private 限定符&#xff…...

IDEA 一键部署Docker

以部署示例服务&#xff08;sevnce-demo&#xff09;为例。 配置服务器 地址、账号、密码根据实际情况填写 配置镜像仓库 地址、账号、密码根据实际情况填写 编写Dockerfile 在sevnce-demo根目录下右键&#xff0c;选择创建Dockerfile。 # 基础镜像 FROM sevnce-registry.c…...

linux centos tomcat 不安全的HTTP请求方法

1、页面查看 2、在linux主机可使用此命令查看 curl -v -X OPTIONS http://实际地址 3、进入tomcat conf目录vim web.xml&#xff0c;增加以下内容 <!-- close insecure http methods --> <security-constraint><web-resource-collection><web-resource…...

深入Django(六)

Django的表单系统 引言 在前五天的教程中&#xff0c;我们介绍了Django的基本概念、模型、视图、模板和URL路由。今天&#xff0c;我们将讨论Django的表单系统&#xff0c;它是处理用户输入、验证数据和与模型交互的重要组件。 Django表单系统概述 Django的表单系统提供了一…...

PHP房产小程序微信小程序系统源码

&#x1f3e0;—— 购房租房&#xff0c;一“指”搞定&#x1f3e1; &#x1f50d;【开篇&#xff1a;房产新视界&#xff0c;尽在掌握】 在这个信息爆炸的时代&#xff0c;找房子不再是一场漫长的奔波。有了“房产微信小程序”&#xff0c;无论是购房还是租房&#xff0c;都…...

vscode 历史便携版下载方法

vscode 历史版本地址 https://code.visualstudio.com/updates/v1_75#_remote-developmentexe 信息 下载链接 https://vscode.download.prss.microsoft.com/dbazure/download/stable/5437499feb04f7a586f677b155b039bc2b3669eb/VSCodeUserSetup-x64-1.90.2.exe需要使用的 com…...

深入理解计算机系统 CSAPP 家庭作业8.19

假设n1 会打印 2行 hello 假设n2 会打印 4行 hello 假设n3 会打印 8行 hello 答案 2的n次方...

JDBC学习(Java DataBase Connectivity)

JDBC简介 JDBC入门 驱动jar包&#xff1a;C:\Users\49960\Desktop\mysql-connector-j-9.0.0 需要配置add library&#xff01;&#xff01;&#xff01; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.util.Stack;pub…...

2024源代码加密软件评测丨保护企业源代码防泄密

为什么需要对源代码进行加密&#xff1f;因为源代码泄密可能会带来一系列严重的后果&#xff1a; 源代码泄密会导致企业的知识产权被盗窃&#xff0c;竞争对手可能会利用这些代码开发类似的产品&#xff0c;从而削弱公司的市场竞争力。 由于知识产权被盗&#xff0c;公司可能会…...

测试图片上传功能,使用postman提供的url

是不是有时候想要测试图片上传功能&#xff0c;但是没有后台url进行测试&#xff0c;这时候就可以使用postman提供的url&#xff1a; https://postman-echo.com/post接下来&#xff0c;我将教你在postman中&#xff0c;用该url测试图片上传功能。 1.发送图片上传请求 第一步…...

使用dot来画流程图

Dot是一种图形描述语言&#xff0c;属于Graphviz软件的一部分。Graphviz是一个用于可视化图形&#xff08;图表、网络图等&#xff09;的开源工具集。使用Dot语言&#xff0c;你可以创建并描述节点和边&#xff0c;从而生成图形。以下是如何使用Dot语言画图的基本步骤&#xff…...

基于Java的微信记账小程序【附源码】

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;记账微信小程序被用户普遍使用&#xff0c;为方便用户能够…...

uniapp中 uni.previewImage用法

查看多张照片&#xff0c;图片地址用逗号分隔 showimig(item) {if (item.trainingRoom) {const urls item.trainingRoom.split(,);uni.previewImage({urls: urls,current: ,success: function(res) {// 成功的回调},fail: function(res) {// 失败的回调},complete: function(…...

第十三章 StringTable

String 的基本特性 String&#xff1a;字符串&#xff0c;使用一对 “” 引起来表示 // 两种定义方式 String s1 "atguigu"; // 字面量的定义方式 String s2 new String("hello");String 声明为 final 的&#xff0c;不可被继承String 实现了 Serializ…...

Adobe Acrobat添加时间戳服务器

文章目录 前言一、Adobe Acrobat添加时间戳服务器1.打开Adobe Acrobat软件2.点击【菜单】→ 【首选项】3.点击【安全性】→【更多】4.点击【新建】5.输入【名称】→【服务器URL】 前言 一、Adobe Acrobat添加时间戳服务器 1.打开Adobe Acrobat软件 2.点击【菜单】→ 【首选项…...

数据库管理-第217期 Oracle的高可用-02(20240704)

数据库管理217期 2024-07-04 数据库管理-第217期 Oracle的高可用-02&#xff08;20240704&#xff09;1 GDS简介2 GDS架构2.1 全局数据服务池2.2 全局数据服务域2.3 全局服务管理2.4 全局数据服务目录2.5 Oracle通知服务 3 GDS简图3.1 负载均衡3.2 只读服务失败转移3.3 多主复制…...

搭建基础库~

前言 项目中会用到工具库、函数库以及一些跟框架绑定的组件&#xff0c;如果这些基础模块每个项目都实现一套&#xff0c;维护起来那真的头大&#xff0c;你说呢&#x1f609; 搭建流程 准备工作 创建文件夹myLib、安装Git以及pnpm 目录大概就系这样子&#xff1a; myLib ├…...

深入了解Linux中的udhcpc:动态主机配置协议客户端

目录 什么是udhcpc&#xff1f;安装udhcpc配置网络接口使用udhcpc获取IP地址配置静态IP地址自定义udhcpc脚本高级选项udhcpc常见问题及排查方法1. 无法获取IP地址2. DNS配置不正确3. IP地址冲突4. 无法连接到默认网关5. 无法执行自定义脚本 在Linux系统中&#xff0c;网络配置是…...

O2OA(翱途) 开发平台之HTTP端口规划

O2OA(翱途) 开发平台[下称O2OA开发平台或者O2OA]采用相对灵活的系统架构&#xff0c;支持三种服务器运行的方式。本篇主要阐述合并服务运行独立服务运行代理端口运行三种服务器运行方式。 一、先决条件&#xff1a; 1、O2Server服务器正常运行&#xff0c;系统安装部署请参考文…...

以创新思维驱动下的盲盒小程序:重塑用户体验

一、引言 在数字化浪潮的推动下&#xff0c;小程序以其便捷、高效、无需下载安装的特性&#xff0c;迅速成为移动互联网的新宠。其中&#xff0c;盲盒小程序以其独特的玩法和惊喜感&#xff0c;吸引了大量用户的关注和参与。然而&#xff0c;随着市场竞争的加剧&#xff0c;如…...

设计资料:520-基于ZU15EG 适配AWR2243的雷达验证底板 高速信号处理板 AWR2243毫米波板

基于ZU15EG 适配AWR2243的雷达验证底板 一、板卡概述 本板卡系北京太速科技自主研发&#xff0c;基于MPSOC系列SOC XCZU15EG-FFVB1156架构&#xff0c;搭载两组64-bit DDR4&#xff0c;每组容量32Gb&#xff0c;最高可稳定运行在2400MT/s。另有1路10G SFP光纤接口、1路40G…...

晋级国赛!卓翼飞思技术引领,助力辽宁赛区机器人及人工智能大赛圆满收官

近日&#xff0c;第二十六届中国机器人及人工智能大赛—辽宁赛区选拔赛在大连海事大学圆满收官。本次大赛吸引来自辽宁工业大学、大连理工大学等知名高校的10余支队伍参与&#xff0c;充分展现各高校在机器人及人工智能领域的深厚实力和创新精神。其中&#xff0c;由卓翼飞思实…...

react ts 封装3D柱状图,支持渐变

留档&#xff0c;以防忘记 bar3D.tsx import React, { useEffect, useRef, useState } from react; import * as echarts from echarts; import echarts/lib/chart/bar; import echarts/lib/chart/pictorialBar; import echarts/lib/component/grid; import echarts/lib/comp…...

css---before和after伪元素

1.什么是伪元素 伪元素不是真正的页面元素&#xff0c;html没有对应的元素&#xff0c;但是其所有用法和表现行为与真正的页面元素一样&#xff0c;可以对其使用如页面元素一样的CSS样式&#xff0c;表面上看上去貌似是页面的某些元素来展现&#xff0c;实际上CSS样式展现的行…...

下载后端返回的图片,而不是打开图片

使用 window.location.href 和 window.open 后都是打开图片&#xff0c;原因是&#xff0c;当浏览器发现是浏览器支持的文件类型&#xff0c;例如 jpg、png、svg 等&#xff0c;默认是浏览器打开。 解决 fetch createObjectURL fetch 转换为 blob 对象 createObjectURL() 静…...

ELISA实验前,需要做好哪些准备?

进行ELISA试剂盒实验前&#xff0c;需要进行周密的准备工作以确保实验的顺利进行和实验的准确性。那么&#xff0c;具体应该做哪些准备呢&#xff1f;欣博盛生物为您总结了一些关键的准备工作步骤&#xff1a; 1. 阅读说明书 仔细阅读ELISA试剂盒的说明书&#xff0c;了解试剂…...

浅谈 Linux 中的 core dump 分析方法

文章目录 一、什么是 core dump二、发生 core dump 的原因1. 空指针或非法指针引起 core dump2. 数组越界或指针越界引起的 core dump3. 数据竞争导致 core dump4. 代码不规范 三、core dump 分析方法1. 启用 core dump2. 触发 core dump2-1. 因空指针解引用而崩溃2-2. 通过 SI…...

自研直播系统-直播系统实战

文章目录 1 流媒体基础本文教程下载地址1.1 流媒体1.2 流式传输方式1.2.1 顺序流式传输1.2.2 实时流式传输 1.3 流媒体传输协议1.3.1 rtmp协议1.3.2 HLS协议1.3.3 RTSP协议1.3.4 视频流的对比 1.4 视频编码(codec)1.5 分辨率的规范分辨率簡介&#xff1a;1.5.2 分辨率單位 1.6 …...

python数据分析入门学习笔记

目录 一、 数据分析有关的python库简介 (一)numpy (二)pandas (三)matplotlib (四)scipy (五)statsmodels (六)scikit-learn 二、 数据的导入和导出 三、 数据筛选 四、 数据描述 五、 数据处理 六、 统计分析 七、 可视化 八、 其它![](https://…...

关于HTTP的攻击实验

实验原理&#xff1a;1. 根据ARP中间人攻击&#xff0c;获取 用户和服务器之间的数据2. 将获取到的数据 通过一定的技术来复原&#xff0c;进而获取用户的信息或者 相关权限实验拓扑图 将 kali 的网卡改为桥接模式&#xff0c;查看Kali和本机的ip 启动ettercap&#xff0c;…...

计算机网络面试常见题目(一)

计算机网络面试中常见的问题涉及多个层面&#xff0c;包括网络协议、网络体系结构、网络安全、数据传输等。以下是一些常见题目的详解&#xff1a; 1. OSI七层模型是什么&#xff1f;每层的功能是什么&#xff1f; OSI七层模型是国际标准化组织&#xff08;ISO&#xff09;制…...

web前端开发(概述篇)

一、概念 Web是Internet上的一种多媒体信息服务系统&#xff0c;整个系统由Web服务器、浏览器和通信协议组成。 通信协议HTTP能够传输任意类型的数据对象&#xff0c;满足Web服务器与客户之间的多媒体通信的需求。 一般来说&#xff0c;Web开发分为前端&#xff08;Front-en…...

Mongodb索引使用限制

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第85篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题&#xff0c;欢迎在文章下面点个赞&#xff0c;或者关…...

深⼊理解 JVM 底层原理、垃圾回收机制,能通过mat、jstat进行JVM参数调优

深入理解JVM&#xff08;Java虚拟机&#xff09;底层原理和垃圾回收机制是Java开发者和系统管理员的重要技能&#xff0c;尤其是在性能调优方面。下面是一些关键点&#xff0c;帮助你更好地理解这些概念&#xff1a; ### JVM 底层原理 1. **类加载机制**&#xff1a;JVM如何加…...

Uniapp的简要开发流程指南

Uniapp开发指南 简介 Uniapp 是由DCloud推出的一款基于Vue.js的多端开发框架&#xff0c;支持编译到iOS、Android、H5、以及各大小程序平台&#xff08;如微信小程序、支付宝小程序、百度小程序等&#xff09;。它使开发者可以通过一次编码&#xff0c;实现跨平台的应用发布&…...

服务器感染了. rmallox勒索病毒,如何确保数据文件完整恢复?

导言&#xff1a; 近年来&#xff0c;随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显。其中&#xff0c;勒索病毒作为一种严重的网络威胁&#xff0c;对个人和企业数据造成了巨大的威胁。本文将重点介绍.rmallox勒索病毒的特点、传播途径以及应对策略&#xff0c;旨…...

【Unity AR开发插件】五、运行示例程序

专栏 本专栏将介绍如何使用这个支持热更的AR开发插件&#xff0c;快速地开发AR应用。 链接&#xff1a; Unity开发AR系列 热更数据制作&#xff1a;制作热更数据-AR图片识别场景 插件简介 通过热更技术实现动态地加载AR场景&#xff0c;简化了AR开发流程&#xff0c;让用户可…...

2024/5/28 P1247 取火柴游戏

取火柴游戏 题目描述 输入 k k k 及 k k k 个整数 n 1 , n 2 , ⋯ , n k n_1,n_2,\cdots,n_k n1​,n2​,⋯,nk​&#xff0c;表示有 k k k 堆火柴棒&#xff0c;第 i i i 堆火柴棒的根数为 n i n_i ni​&#xff1b;接着便是你和计算机取火柴棒的对弈游戏。取的规则如下&…...

农业场景下的slam论文汇总

文章目录 概述2020基于&#xff33;&#xff2c;&#xff21; &#xff2d; 技术的高杆环境下小型植保车自主行驶系统研究【M】基于语义 SLAM 的农田感知系统研究[M]Ground-Level Mapping and Navigating for Agriculture Based on IoT and Computer VisionCanopy Density Esti…...

C# 跨线程访问UI组件,serialPort1串口接收数据

在Windows应用程序&#xff08;例如WinForms或WPF&#xff09;中&#xff0c;UI组件&#xff08;如按钮、文本框等&#xff09;都在主线程&#xff08;也称为UI线程&#xff09;上运行。当你在一个非UI线程&#xff08;例如&#xff0c;一个后台线程或者网络请求线程&#xff0…...

成都百洲文化传媒有限公司引领电商服务新风尚

在当今数字化时代&#xff0c;电商行业正以前所未有的速度蓬勃发展&#xff0c;而在这个充满机遇与挑战的领域中&#xff0c;成都百洲文化传媒有限公司以其专业的电商服务&#xff0c;成为了行业的佼佼者。作为一家专注于电商服务的传媒公司&#xff0c;百洲文化不仅为商家提供…...