精华内容
下载资源
问答
  • 宽带远程服务器无响应 内容精选换一换已成功添加目标环境。如果目标环境处于在线状态,只允许修改目标环境名称。...如果目标环境处于在线状态,只允许修改目标环境名称。...安装分析辅助软件的服务器已开启sshd。...

    宽带远程服务器无响应 内容精选

    换一换

    c8a5a5028d2cabfeeee0907ef5119e7e.png

    已成功添加目标环境。如果目标环境处于在线状态,只允许修改目标环境名称。如果目标环境处于离线状态,可以输入登录远程服务器的用户名和密码重新部署分析辅助软件。如果目标环境处于在线状态,只允许修改目标环境名称。如果目标环境处于离线状态,可以输入登录远程服务器的用户名和密码重新部署分析辅助软件。安装分析辅助软件的服务器已开启sshd。当目标环境离

    华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。

    宽带远程服务器无响应 相关内容

    已成功登录Java性能分析。待安装Guardian的服务器已开启sshd。待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei JDK 8或者Open JDK 8/11。Java性能分析优先选用非交互shell(non-interactive shell)中的JAVA_HOME环境变量所指定的JRE版本运行Guardi

    如果获取到的异常堆栈出现“System.Net.WebException: 无法连接到远程服务器 --->System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败“,说明连接超时。出现这类异常的原因一般是服务地址(Endpoint)错误或网络不通导致无法连

    宽带远程服务器无响应 更多内容

    9bf196c9a2e0b7b0bc69748c838418a5.png

    介绍常见的安全组配置示例。如下示例中,出方向默认全通,仅介绍入方向规则配置方法。不同安全组内的云耀云服务器内网互通仅允许特定 IP 地址远程连接云耀云服务器SSH远程连接Linux云耀云服务器RDP远程连接Windows云服务器公网ping云耀云服务器云耀云服务器作Web服务器云耀云服务器作DNS服务器使用FTP上传或下载文件场景举例:在

    22d5e09c1bd36dc697ac56f0e92512a6.png

    介绍常见的安全组配置示例。如下示例中,出方向默认全通,仅介绍入方向规则配置方法。不同安全组内的弹性云服务器内网互通仅允许特定IP地址远程连接弹性云服务器SSH远程连接Linux弹性云服务器RDP远程连接Windows弹性云服务器公网ping ECS弹性云服务器弹性云服务器作Web服务器弹性云服务器作DNS服务器使用FTP上传或下载文件场景

    c8670e33c445c10cd2a0fcb5ca15332b.png

    远程登录报错提示:两台计算机无法在分配的时间内连接。在本地主机单击“开始”,运行中输入cmd,用管理员身份运行cmd。然后输入命令 netsh winsock reset根据提示重启本地主机后,重新连接云服务器。

    d151cefbfd54a36eb240c5cc85e1151a.png

    本节为您介绍如何在本机使用远程登录工具MSTSC登录Windows弹性云服务器。弹性云服务器状态为“运行中”。如果弹性云服务器采用密钥方式鉴权,已获取Windows弹性云服务器的密码,获取方式请参见获取Windows弹性云服务器的密码。弹性云服务器已经绑定弹性公网IP,绑定方式请参见绑定弹性公网IP。使用MSTSC方式通过内网登录云服务器

    4a3dbebf52c74fe713408ff26033c570.png

    远程登录服务器出现蓝屏或黑屏,可能是由于explorer.exe进程异常导致的桌面无法显示。这是由于Windows服务器的explorer.exe进程异常导致的。explorer.exe是Windows程序管理器或者文件资源管理器,它用于管理Windows图形壳,包括桌面和文件管理,删除该程序会导致Windows图形界面无法使用。打开云服

    f3b8b8d84706868f201fb0c4780edbab.png

    已成功添加目标环境。安装分析辅助软件的服务器已开启sshd。如果在重新部署分析辅助软件过程中出现“无法安装分析辅助软件”的错误提示,请检查用户名或密码是否输入正确、当前用户是否被锁定。

    c0e51685ecf1c455eed0daf868911dc9.png

    已成功添加目标环境。安装分析辅助软件的服务器已开启sshd。如果在重新部署分析辅助软件过程中出现“无法安装分析辅助软件”的错误提示,请检查用户名或密码是否输入正确、当前用户是否被锁定。

    c2f51807c80a3c0a9fb1f931f2bad396.png

    已成功添加目标环境。安装分析辅助软件的服务器已开启sshd。如果在重新部署分析辅助软件过程中出现“无法安装分析辅助软件”的错误提示,请检查用户名或密码是否输入正确、当前用户是否被锁定。

    399bb9e39ad395cd7fb119c5287fddf8.png

    购买Windows弹性云服务器后,通过MSTSC远程连接,发现没有声音。通过MSTSC远程连接的Windows弹性云服务器如何播放音频?本节内容适用于Windows Server 2008 R2、Windows Server 2016系统的弹性云服务器。Windows弹性云服务器默认禁用音频设备,导致无法通过远程桌面的方式使用音频设备。如

    b80c406dd1bff1336ad2b20072f4b1ca.png

    云服务器可以远程连接,但弹性公网IP无法ping通。需要添加安全组的入方向规则并开启ICMP协议。登录管理控制台。选择“计算 > 弹性云服务器”。在弹性云服务器列表栏,单击目标弹性云服务器名称。系统进入弹性云服务器详情页。系统进入弹性云服务器详情页。选择“安全组”页签,展开安全组,并单击安全组ID。打开安全组在“安全组”页面的“入方向”页

    a4c4c5b28481f97f2139da8bb7c47c58.png

    云堡垒机与LDAP服务器对接,认证登录系统的用户身份。本小节主要介绍如何配置LDAP域认证模式。不支持一键同步LDAP服务器用户。不能添加两个相同的LDAP配置,即服务器IP地址+端口+用户OU不能相同。用户已获取系统模块管理权限。已获取LDAP服务器相关信息。若需查看配置的LADP认证信息,可单击详情,在弹出的LDAP详情窗口查看。若需

    展开全文
  • git基本命令--远程

    千次阅读 2020-12-22 13:09:37
    $ git push origin 表示,将当前分支推送到origin主机的对应分支 如果当前分支只有一个追踪分支(意思是远程主机名?),那么主机名都可以省略。 $ git push 如果当前分支与多个主机存在追踪关系,则可以使用-u选项...

    git clone:

    # clone到 $ git clone # 克隆版本库的时候,所使用的远程主机自动被Git命名为origin。如果想用其他的主机名,需要用git clone命令的-o选项指定。

    $ git clone-o jQuery https://github.com/jquery/jquery.git

    $ git remote

    jQuery

    git clone只会clone master分支,如果想clone所有分支,git clone后git fetch,或者其它命令

    git remote:

    git remote add  添加一个新的远程 Git 仓库, 也称作“主机名”

    $ git remote

    origin

    $ git remote add pb https://github.com/paulboone/ticgit

    $ git remote -v

    originhttps://github.com/schacon/ticgit (fetch)

    originhttps://github.com/schacon/ticgit (push)

    pbhttps://github.com/paulboone/ticgit (fetch)

    pbhttps://github.com/paulboone/ticgit (push)

    现在你可以在命令行中使用字符串 pb 来代替整个 URL。 例如,如果你想拉取 Paul 的仓库中有但你没有的信息,可以运行 git fetch pb:

    $ git fetch pb

    remote: Counting objects: 43, done.

    remote: Compressing objects: 100% (36/36), done.

    remote: Total 43 (delta 10), reused 31 (delta 5)

    Unpacking objects: 100% (43/43), done.

    From https://github.com/paulboone/ticgit

    * [new branch] master -> pb/master

    * [new branch] ticgit -> pb/ticgit

    现在 Paul 的 master 分支可以在本地通过 pb/master 访问到 - 你可以将它合并到自己的某个分支中,或者如果你想要查看它的话,可以检出一个指向该点的本地分支。

    git remote show命令加上主机名,可以查看该主机的详细信息。

    $ git remote show origin*remote origin

    Fetch URL:ssh://example.com/path/to

    Push URL: ssh://example.com/path/to

    HEAD branch: master

    Remote branch:

    master tracked

    Local branch configuredfor 'git pull':

    master merges with remote master

    Local ref configuredfor 'git push':

    master pushes to master (fast-forwardable)

    git remote rm命令用于删除远程主机。

    git remote rename命令用于远程主机的改名。

    $ git remote rm $ git remote rename

    git fetch:

    一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令。

    默认情况下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。

    $ git fetch $ git fetch #forexample

    $ git fetch origin master

    所取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。比如origin主机的master,就要用origin/master读取。

    git branch:

    git branch命令的-r选项,可以用来查看远程分支,-a选项查看所有分支。

    $ git branch -r

    origin/master

    $ git branch-a*master

    remotes/origin/master

    上面命令表示,本地主机的当前分支是master,远程分支是origin/master。

    git pull:

    git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。

    $ git pull :

    比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。

    $ git pull origin next:master

    如果远程分支是与当前分支合并,则冒号后面的部分可以省略。

    $ git pull origin next

    上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。

    $ git fetch origin

    $ git merge origin/next

    在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动"追踪"origin/master分支。

    Git也允许手动建立追踪关系。

    $ git branch --set-upstream master origin/next

    上面命令指定master分支追踪origin/next分支。

    如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。

    $ git pull origin

    上面命令表示,本地的当前分支自动与对应的origin主机"追踪分支"(remote-tracking branch)进行合并。

    如果当前分支只有一个追踪分支,连远程主机名都可以省略。

    $ git pull

    上面命令表示,当前分支自动与唯一一个追踪分支进行合并。

    如果合并需要采用rebase模式,可以使用--rebase选项。

    $ git pull --rebase :

    如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。这是为了防止,由于其他人操作了远程主机,导致git pull不知不觉删除了本地分支。

    但是,你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支。

    $ git pull -p

    # 等同于下面的命令

    $ git fetch--prune origin

    $ git fetch-p

    git push:

    git push命令用于将本地分支的更新,推送到远程主机。

    $ git push :

    如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。simple, matching, need to verify. 用于新建远程分支?

    $ git push origin master

    上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。simple, matching, need to verify.

    如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。

    $ git push origin :master

    # 等同于

    $ git push origin--delete master

    如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。

    $ git push origin

    表示,将当前分支推送到origin主机的对应分支

    如果当前分支只有一个追踪分支(意思是远程主机名?),那么主机名都可以省略。

    $ git push

    如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。

    $ git push -u origin master

    上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

    不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。如果要修改这个设置,可以采用git config命令。(只有不带参数时,git push才会区分simple 和matching的情况?)

    $ git config --global push.default matching

    # 或者

    $ git config--global push.default simple

    还有一种情况,就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要使用--all选项。

    $ git push --all origin

    上面命令表示,将所有本地分支都推送到origin主机。

    如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用--force选项。

    $ git push --force origin

    上面命令使用--force选项,结果导致远程主机上更新的版本被覆盖。除非你很确定要这样做,否则应该尽量避免使用--force选项。

    最后,git push不会推送标签(tag),除非使用--tags选项。

    $ git push origin --tags

    参考:

    展开全文
  • 一文详解心镜头

    千次阅读 2020-12-22 07:00:00
    点击上方“3D视觉工坊”,选择“星标”干货第一时间送达编辑丨机器视觉课堂基本镜头类型近心:入射光瞳在镜头内部心:入射光瞳在无限远处环外侧:入射光瞳在镜头前方放大倍率稳定性在测量应用中,...

    点击上方“3D视觉工坊”,选择“星标”

    干货第一时间送达

    编辑丨机器视觉课堂

    基本镜头类型


    近心:入射光瞳在镜头内部



    远心:入射光瞳在无限远处



    环外侧:入射光瞳在镜头前方


    放大倍率稳定性

    在测量应用中,经常需要用到物体的正交视图(即没有物侧成像),以便执行正确的线性测量。

    此外,许多机械部件无法精确定位(例如,由于振动),或者必须在不同的深度或甚至更糟的情况下进行测量时,物体的厚度(进而物体表面的位置)可能会发生变化;然而即便如此,软件工程师依然需要成像尺寸与实际尺寸之间的完美对应。

    普通镜头在不同的共轭位置呈现不同的放大倍率:因此,当物体移动时,其图像大小的变化与物体到镜头的距离几乎成正比。任何人都可以在日常生活中轻松体验到这一点,例如使用配备有标准摄影镜头的相机拍照时。

    当改变物体到镜头的距离(图中标记为“s”)时,标准镜头会产生不同大小的图像。

    另一方面,当具有相同视角时,不同大小的物体看起来具有相同的尺寸。


    左:分别使用标准镜头(顶部)和远心镜头(底部)拍摄的圆柱形物体的内花键。

    右:分别使用标准镜头(顶部)和远心镜头(底部)拍摄的两个完全相同的机器螺丝(间隔100 mm)。


    当物体保持在一定的范围内时,远心镜头获得的图像尺寸不会随物体位移而发生变化,这一范围通常被称为“景深”或“远心范围”。
    这是由于光线在光学系统内的特定路径而产生的:只有重心线(或“主光线”)平行于光机主轴时,才能被物镜捕获到。因此,前端镜头的直径至少要与物方视场对角线一样大。

    这种光学行为通过将孔径光阑精确定位于前方光学组的焦平面上而获得:入射光瞄准看似来自于无限远处的入射光瞳。“telecentric”(远心的)这个词语来源于“tele”(古希腊语中的意思是“远的”)和“centre”(中心)(指的是瞳孔孔径——光学系统的实际中心)。


    在远心光学系统中,光线只能通过平行于光轴的路径进入光学器件。

    为了感受两种不同物镜的区别,我们设想一个标准镜头,焦距f = 12 mm,衔接一个1/3"的探测器,面对一个高度H = 20 mm、距离s = 200 mm的物体。

    假设物体位移ds = 1mm,其尺寸的变化将大约为:

    dH = (ds/s) · H = (1/200) · 20 mm = 0.1 mm

    对于一个远心镜头,放大倍率的变化取决于“远心斜率”:好的远心镜头具有约为0.1°(0.0017弧度)的有效远心斜率θ;这意味着,物体位移ds为 1 mm时,其尺寸只会改变

    dH = ds · theta= 1 · 0.0017 mm = 0.0017 mm

    因此,相比于标准镜头,远心镜头放大倍率的误差减少到1/10至1/100。


    远心斜率决定放大倍率的变化。

    “远心范围”或“远心深度”的概念通常被解释为放大倍数保持不变的景深范围。这个解释的误导之处在于它意味着剩余空间是“非远心的”,尽管这个参数总与处于相同范围内的镜头产生的最大测量误差有关。一个更重要的参数是“远心斜率”(以上称为“θ”)或“远心度”。该角度定义了由于物体位移产生的测量误差,无论被测物体放置在何处:由于主光线“沿直线传播”,此误差显然与空间无关。

    为了收集远心光线,远心镜头前方的光学组件必须至少与物体的最大尺寸一样大;因此,相比于普通光学镜头,远心镜头更大、更重,因此也更加昂贵。


    低畸变

    畸变是限制测量精度最严重的问题之一:即使性能最好的光学器件也会不同程度地受到畸变的影响,通常即使实际图像与预期图像仅有单个像素的区别,也可能成为严重的畸变。

    简单来讲,畸变被定义为像点距图像中心的距离与无畸变图像上这一相同距离的百分比差值;它可以被看作物体的成像尺寸与其真实尺寸的偏差。例如,如果一个图像上的一点距其中心198个像素,而无畸变时该点距图像中心200个像素,则在这一点上的径向畸变将为:

    畸变 = (198 - 200) / 200 = -2/200 = 1%

    正径向畸变也被称为“枕形”畸变,而负径向畸变则被称为“桶形”畸变:应当注意的是畸变取决于径向位置,并可以改变正负。畸变也可以视为一个从真实世界到由镜头创建的虚拟空间的二维几何变换;由于这种变换不是完全线性的,而是接近2阶或3阶的多项式,因此图像会稍有拉伸和变形。

    普通光学器件的畸变值会从几个百分比到数几十个百分比不等,要获得精确测量非常困难;当使用非远心镜头时情况更糟。大多数机器视觉光学器件最初是针对视频监控或摄影应用而开发出来的,因此相关畸变值通常被认为是可以接受的,因为人眼可以补偿高达1 - 2%的畸变误差。在某些情况下,如鱼眼镜头或网络摄像头镜头,会特意引入畸变以使镜头可以在大角度下工作,同时也可以为探测器提供均匀照明(在这些情况下畸变有助于减少余弦四次方定律效应)。

    高质量的远心镜头通常具有非常低的畸变度,其值在0.1%之内;尽管这个值看起来非常小,但由其导致的测量误差会接近于高分辨率相机一个像素的大小。出于这个原因,在大多数应用中,畸变需要使用软件来校准:将一个精细图案(其几何精度必须至少为所需测量精度的十倍)放置在景深中心;然后在几个像点处计算出畸变,根据这些数据,软件算法可以将原始图像转换成无畸变图像。

    很少有人知道,畸变不仅取决于光学器件本身,还与被测物体的距离有关;因此,严格遵守额定工作距离是非常重要的。

    我们建议将镜头与被测物体进行精密的垂直校准,这样可以避免非同轴对称畸变效应。梯形畸变(也称为“梯形”或“薄棱镜”效应)是光学检测系统中另一个需要最小化的重要参数,因为它是非对称的,且很难通过软件进行校准。由于机械游隙或光学元件偏离中心,镜头对焦机构也会引入一些对称或非对称的畸变效应。

    Left: “pincushion” type distortion
    Right: “barrel” type distortion

    左边的图片是用一个远心镜头拍摄的畸变图案,未出现径向或梯形畸变。中间的图片是同一图案的另一拍摄结果,但显示出明显的径向畸变。右边则是梯形畸变的例子。


    透视误差限制

    当使用普通的光学器件对三维物体(非完全平坦的物体)成像时,远处物体看起来会比近处物体更小。因此,对一个圆柱空腔成像时,其顶冠和底冠边缘会呈现为两个同心圆,尽管实际上这两个圆是完全相同的。

    相反,在使用远心镜头时,两个冠边缘是完全重叠的,底冠边缘因而被完全遮挡。

    这种效应取决于光线的特定路径:在使用普通光学器件时,“平行”于主光轴的各种几何信息在探测器平面方向上也会具有分量,而使用远心镜头时完全没有这种垂直分量。

    可以将一个普通镜头描述为一个数学函数,该函数建立起一个三维物体空间与二维探测器(图像)空间之间的对应关系,而远心镜头则建立一个二维——二维的对应关系,它不会展示被测物体的第三维度,因此成为剖面成像和尺寸测量的完美组件。

    普通的光学器件会产生明显的图像透视误差(左图)。

    远心镜头能够消除所有的透视效应(右图)。

    普通光学器件(左)将纵向几何信息投射到探测器上,而远心镜头没有。



    较好的图像分辨率

    图像分辨率一般以量化相机探测器平面既有空间频率对比度的CTF(对比传递函数)来衡量,单位为lp/mm(每毫米线对数)。

    机器视觉集成商往往倾向于将具有大量小像素的相机与低像素、低分辨率镜头结合使用,导致生成的图像模糊;而我公司提供的远心镜头分辨率高,可配合像素尺寸极小的高分辨率相机使用,从而提高测量分辨率。

    不同CTF级别的光学器件所摄的标准美国空军分辨率测试图之间有明显的差异。


    不存在边缘位置不确定性

    逆光拍摄物体时,往往很难确定其边缘的确切位置。因为在黑暗的背景下,物体边缘的亮像素往往会与暗像素重叠。此外,如果物体具有高度的三维形状,边界效应也会进一步限制测量精度;如下图所示,光线以一定的入射角掠过物体边缘,被其表面反射后依然会被镜头捕获。镜头由此会认为这些光线来自物体后方;结果部分图像片段可能消失,使得测量非常不精确且不稳定。


    如果使用远心镜头,则会大大减少普通成像镜头存在的边界效应。

    使用远心镜头可以有效限制这种效应:如果瞳孔孔径足够小,那么可以进入镜头的唯一反射光将是那些近于平行主光轴的光线。

    由于这些光线受到非常小的偏差影响,因此物体表面对其的反射不会损害测量精度。

    想要完全解决这些问题,可以将准直(也称为“远心”)照明器连接到远心镜头,并利用平行光源发散度处理好镜头孔径与视场的匹配。这样一来,来自照明器的所有光均由镜头收集并传送给探测器,同时可实现极高的信噪比和难以置信的低曝光时间。另一方面,只有“预期的”光线进入成像镜头,这样就不会出现边界问题了。


    准直(远心)照明仅将预期光线投射到成像系统中。


    双远心镜头的优势

    1. 更好的放大倍率稳定性

    标准远心镜头接收光轴平行于主光轴的光锥进入;如果镜头只是在物空间具有远心性,穿过光学系统的光锥根据不同的场位从不同角度到达探测器。此外,由于入射远心光线在像空间是非远心的,光学波前完全非对称。因此,光锥在探测器平面上产生的光斑,在像空间会全方位地发生形状和大小上的改变(点分布函数变为非对称的,小圆斑变大且当从图像中心向边界移动时变成椭圆形)。
    更糟糕的是,当被测物体发生位移时,来自一特定场点的光线会产生一个光斑,该光斑在像平面上来回移动,从而引起放大倍率的明显变化。因此,非双远心镜头表现出较低的放大倍率稳定性,尽管只有在物空间测量时其远心度可能很好。

    双远心镜头在物空间和像空间兼具远心性,这意味着主光线不仅在进入镜头时是平行的,在出射时也是平行的。这一特性对解决单远心镜头的所有精度问题(比如点扩散函数不均匀性及缺少整个景深的放大倍率稳定性)是至关重要的。


    在非像空间中,远心镜头(左)的光锥从不同角度到达探测器;而双远心镜头(右)的光锥以一种与场位无关的方式平行到达图像传感器。此外,远心镜头中主光线的截距不随景深变化。

    2. 更大的景深

    景深是物体从最佳焦点位置偏移的最大可接受值。超过这一值,图像分辨率就变得很差,因为来自物体的光线不能在探测器上产生足够小的光斑:光线携带的几何信息分布在太多的图像像素上而产生了模糊效应。景深基本上取决于光学器件的F值,该值与镜头光圈直径成反比:f值越高景深越大,二者拟线性相关。增大F值会降低光锥的发散度,从而允许较小的光斑在探测器上形成;但是F值增大到一定值时会引起衍射效应,从而限制了最大可达到的分辨率。

    当拍摄很厚的物体时,双远心度在获得良好图像对比度方面很有优势:光学系统的对称性以及光线的平行性促使图像光斑保持对称性,这样可以降低模糊效应。这使得双远心光学器件的景深比非双远心的大20-30%。

    厚物体在其整个纵深上的成像。

    3. 均匀的探测器照明

    双远心镜头拥有非常均匀的探测器照明,这在多个应用中都十分有用,比如LCD、纺织和印刷质量控制。

    当双色向滤光镜不得不集成在光路中用以光度和辐射测量时,双远心度确保了光线扇面轴垂直于滤光镜表面,从而在整个探测器表面保持了光学带通。

    一个双远心镜头连接了一个可调滤波器,用以执行高分辨色彩测量。倘若被测物体也被均匀照射,像侧远心度会保证光学带通在整个滤波器表面都是均匀的,并提供均匀的探测器照明。


    什么情况下应使用远心镜头

    • When a thick object (thickness > 1/10 FOV diagonal) must be measured

    • When different measurements on different object planes must be carried out

    • When the object-to-lens distance is not exactly known or cannot be predicted

    • When holes must be inspected or measured

    • When the profile of a piece must be extracted

    • When the image brightness must be very even

    • When a directional illumination and a directional “point of view” are required.

    本文仅做学术分享,如有侵权,请联系删文。

    下载1

    在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

    下载2

    在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

    下载3

    在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

    重磅!3DCVer-学术论文写作投稿 交流群已成立

    扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

    同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

    一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

    ▲长按加微信群或投稿

    ▲长按关注公众号

    3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

    学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

     圈里有高质量教程资料、可答疑解惑、助你高效解决问题

    觉得有用,麻烦给个赞和在看~  

    展开全文
  • 什么是远程线程注入?

    千次阅读 2021-12-11 13:29:34
    远程线程注入 首先,要说明白远程线程注入,必须得弄明白什么是远程线程以及什么是注入! 远程线程 这里的远程指的是别的进程空间,大家应该都在自己代码中或多或少运用过多线程,这里给出常见的win32创建线程接口的...

    远程线程注入

    首先,要说明白远程线程注入,必须得弄明白什么是远程线程以及什么是注入!

    远程线程

    这里的远程指的是别的进程空间,大家应该都在自己代码中或多或少运用过多线程,这里给出常见的win32创建线程接口的使用,如下:

    本地线程创建

    1 、官方给的接口:

    HANDLE CreateThread(
      [in]  LPSECURITY_ATTRIBUTES   lpThreadAttributes, //安全描述符,一般填NULL
      [in]  SIZE_T                  dwStackSize, //栈空间,一般写0,系统给我们默认值
      [in]  LPTHREAD_START_ROUTINE  lpStartAddress, //线程函数
      [in]  LPVOID					lpParameter,  //线程函数的传入参数
      [in]   DWORD                  dwCreationFlags, //创建标志,一般为0 
      [out] LPDWORD                 lpThreadId  //传出的线程ID
    );
    

    2、基本使用

    //线程函数
    DWORD WINAPI threadFunc(LPVOID lpThreadParameter)
    {
    	for (int i = 0; i < 5; i++)
    	{
    		printf("---------------\n");
    		Sleep(500);
    	}
    	return 0;
    }
    
    int main()
    {
    	HANDLE hThread = CreateThread(NULL, 0, threadFunc, NULL, 0, NULL);//创建线程
    	WaitForSingleObject(hThread, INFINITE); //阻塞等待线程执行完毕
    	CloseHandle(hThread); 
    	return 0;
    }
    

    3、执行结果
    在这里插入图片描述

    远程线程创建

    1 、官方给的接口:

    HANDLE CreateRemoteThread(
      [in]  HANDLE                 hProcess,           //要在哪个线程创建,这边是线程句柄
      [in]  LPSECURITY_ATTRIBUTES  lpThreadAttributes, //安全描述符
      [in]  SIZE_T                 dwStackSize,        //默认为0
      [in]  LPTHREAD_START_ROUTINE lpStartAddress,     //对方进程空间的线程函数地址
      [in]  LPVOID                 lpParameter,        //对方进程空间的参数地址
      [in]  DWORD                  dwCreationFlags,    //默认0
      [out] LPDWORD                lpThreadId          //系统唯一的线程id
    );
    

    2、基本使用

    //参数为要目的进程ID , 目的进程空间的函数地址
    //为了清晰整洁,错误判断就没有写
    void DoRemoteThreadFunc(DWORD pid, DWORD funcaddr)
    {
    	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); //根据进程id ,获取进程句柄
    	DWORD threadid = 0;
    	HANDLE hThread = INVALID_HANDLE_VALUE;
    	//在目的进程中   创建远程线程
    	hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)funcaddr, NULL, 0, &threadid);
    	CloseHandle(hThread);
    	CloseHandle(hProcess);
    }
    int main()
    {
    	//这里千万要注意,第一个进程id,咱们测试,通过任务管理器找出正在运行目的进程的pid
    	//第二个,只要目标程序没有重新编译,咱们可以通过打断点,查看反汇编,找到函数地址进行测试
    	DoRemoteThreadFunc(4788,0x1001730);
    	return 0;
    }
    
    以上为A端,是需要在B端创建线程的程序
    ------------------------------------------------------------------------------------------------------------------------------------------------
    以下为B端,是被创建线程的程序
    void func()
    {
    	for (int i = 0; i < 5; i++)
    	{
    		printf("----------------func\n");
    		Sleep(500);
    	}
    }
    
    int main()
    {
    	func();
    	printf("********\n");
    	getchar();
    	return 0;
    }
    

    B端程序运行后,查看进程ID
    在这里插入图片描述
    查看B端的一个函数的地址
    在这里插入图片描述

    3、执行结果
    在这里插入图片描述
    4、总结
    咱们发现最主要的就是理解每个进程空间的地址都是虚拟地址,进程A的地址0x40000到进程B后,就完全不是一回事了!!!!!!!

    这样咱们就知道,远程线程就是在别的进程空间创建一个线程而已!!!!


    注入

    1、定义
    注入就是在对方不知情的情况下,将第三方的模块或者代码注入到对方的进程空间中,并使其运行的手段。

    咱们上面写的创建远程线程有一个最大的弊端就是,只能使用对方自己的函数。而注入,就是让对方远程线程使用咱们自己的函数!!!!

    2、常见注入-----远程线程注入

    • 1、将LoadLibraryA这个系统函数作为咱们的远程线程函数入口
    • 2、在对方开辟一个物理页,将需要注入的DLL的完整路径写进去,这个地址会作为线程函数参数!
    • 3、然后咱们就可以在DLL入口函数中,在被附加的时候执行咱们自己的程序了,想执行啥执行啥,因为咱们的DLL现在在对方的进程空间中!!!!!

    注意: 这边咱们需要理解一下LoadLibraryA这个是kernal32模块的函数,并且对于每个进程来说,这个函数地址都是一样的,32位程序下,属于共享高2G的内存区域。

    3、代码如下:(为了简洁,不做错误判断了哈)

    //参数一: 注入的进程id
    //参数二:需要注意的DLL路径 
    void RemoteInject(DWORD pid,char* dllPath)
    {
    	//1 获取对方进程句柄
    	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
    
    	//2 对方开辟物理页,存放Loadlibrary 传入的参数,也就是dll路径
    	VOID* paraAddr = VirtualAllocEx(hProcess, NULL, strlen(dllPath) + 1, MEM_COMMIT, PAGE_READWRITE);
    
    	//3 往物理页写入 路径
    	WriteProcessMemory(hProcess, paraAddr, dllPath, strlen(dllPath) + 1, NULL);
    
    	//4 获取loadlibrary函数的地址
    	HINSTANCE LibHandle = LoadLibrary("kernel32");
    	DWORD ProcAdd = (DWORD)GetProcAddress(LibHandle, "LoadLibraryA");
    	
    	//5 创建远程线程
    	DWORD threadid = 0;
    	HANDLE hThread = INVALID_HANDLE_VALUE;
    	hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)ProcAdd, paraAddr, 0, &threadid);
    
    	CloseHandle(hThread);
    	CloseHandle(hProcess);
    }
    
    

    下面是被注入的DLL的代码:

    DWORD WINAPI threadFunc(LPVOID lpThreadParameter)
    {
    	for (int i = 0; i < 5; i++)
    	{
    		printf("myfunc is doing....----------------\n");
    	}
    	return 0;
    }
    
    BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
                         )
    {
        switch (ul_reason_for_call)
        {
        case DLL_PROCESS_ATTACH:
    		CreateThread(NULL, 0, threadFunc, NULL, 0, NULL); //线程是函数执行体,必须创建
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
        }
        return TRUE;
    }
    

    4、运行结果如下
    在这里插入图片描述
    5、总结

    • 理解32位程序下,每个进程的4GB虚拟内存空间
    • 合理利用CreateRemoteThread函数
    • DLL注入的方法很容易被检测

    结尾: 我是航行的土豆,喜欢我的朋友们,欢迎点赞+关注哦!希望大家多多支持我哦!有相关不懂问题,可以留言一起探讨哦!

    展开全文
  • 使用idea开启远程调试

    千次阅读 2021-02-27 15:19:19
    然后可以看到Debugger mode,这里有两种模式,一种是Attach to remote JVM,大致意思就是端服务器会打开一个接口,等待idea连接。另一种是Listen to remote JVM,大致意思是本地开放一个监听接口等待端服务器...
  • 如果ping不通,检查安全组是否已添加如下规则:再次尝试 连接远程服务器超时请检查网络连接 更多内容 云服务器网络异常、防火墙未放行本地远程桌面端口、云服务器CPU负载过高等问题均可能导致云服务器无法正常登录...
  • 远程连接其实并不难懂,相信大家通过字面意思就可以理解,但是,操作起来还是需要一点技巧的,那么,下面我们就说说如何远程连接电脑,看看都有哪些方法可以远程连接电脑。如何远程连接电脑其实并不难,也是我们日常...
  • 优质回答 回答者:方老帅将电脑IP配置成自动获取,将进线连接到路由器的WAN口(在路由器上有注明);另找条网线一头插路由LAN口(路由器上有标明),一头插的电脑上;1、登陆路由器(对于TP-link的路由器:打开你的电脑,...
  • 远程声控系统(MATLAB代码见CSDN资源)

    千次阅读 热门讨论 2021-01-20 08:52:21
    然后通过噪声信道实现远程传输,端接收后再通过适当计算识别出是何指示,最后送入一个处于未知状态、但能控/能观的控制系统,完成不同的控制动作。 二、问题分解与解决思路 2.1 系统设计 实验中以汉语数字语音1~9...
  • 故障描述用户在使用电脑的过程中经常会遇到一些问题,比如,最近有些Win7系统用户打开电脑后突然弹出一个对话框显示“远程过程调用失败且未执行”,这是怎么回事呢?其实,这通常是由于我们在没有关闭计算机的时候,...
  • 在远程连接服务器的时候,你是否有遇到远程桌面连接不上的情况?服务器连接不上有多种原因,导致服务器连接不上可能的原因有以下几种常见的原因​: 1)远程计算机上的远程连接可能没有启用 2)带宽跑满(不一定是...
  • 在细节面板中红色框内的含义是选择端位移的作用位置,蓝色框内的含义是设置端位移的作用点,默认时端位移的作用点是作用位置的几何中心位置,从以上可以看出,端位移与普通位移的一个区别就是作用位置和作用...
  • 离开蜗牛之后杭州参与了一次不成功的创业,因为项目和家庭的原因,最终还是选择回到苏州。回到苏州之后有不少朋友介绍工作,最终入职了玩友。在玩友经历了《帝王雄心》,《精灵食肆》两个项目,两个项目虽然都没...
  • 无需外设实现电脑远程开机

    千次阅读 2021-03-31 13:08:10
    所谓的远程开机本质上就是触发电脑电源的断电、通电功能(台式机、笔记本都是同样的道理),向日葵等远程软件的什么智能插拔、某某棒等本质上就是这个原理,并没有特殊功能,就是借助BIOS自身的功能,实现通断电触发...
  • git拉取远程仓库命令代码

    千次阅读 2021-07-21 17:57:53
    二 、更新远程仓库代码到本地仓库 查看远程仓库 git remote -v 显示当前远程仓库的文件 从远程获取最新版本到本地 git fetch origin master 这句的意思是:从远程的origin仓库的master分支下载代码到本地的origin ...
  • 在操作电脑的过程中,很多用户都遇到过系统提示远程调用过程失败且未执行的情况,那这是怎么回事呢?其实这是由于错误操作触发了系统中的保护程序而造成,所以针对这一问题,今天本文为大家整理的就是关于远程调用...
  • 如果还是网络运营商端无响应,将接在路由器WAN口的线拔掉,直接接在电脑上,然后点击电脑桌面“宽带连接”,将宽带用户名和密码“删除”,重新输入,然后再点连接 ,看下是否可以连接上,如果连不上是网络的问题,...
  • 意思是把本地项目自动同步到远程服务器上,可以设置同步映射地址,完成后就可以使用服务器环境在本地运行、修改了。 四、总结 在远程连接的综合便捷程度来说,Vscode≥Pycharm≥Mobaxterm。Mobaxterm对比最朴素的ssh...
  • todesk远程软件下载 todesk远程软件(远程协助软件)使用也非常简单,只需要用户电脑和端计算机同时安装todesk远程软件,本地电脑输入端计算机的伙伴ID和连接密码即可实现快速安全又稳定的远程协助操作: ...
  • 我的意思是说对于工作在 IT 基础设施行业的用户来说,了解这个话题也是非常有用的.他们需要在执行下一步操作前,检查 Linux 服务器上某个端口是否开启. 假如这个端口没有被开启,则他们会直接找 Linux 管理员开启它....
  • 意思是当前目录,不能省略 1.3 把本地项目提交到本地仓库: #先把当前路径下的所有文件添加到缓存 git add . #提交缓存中的修改到本地仓库 git commit -m "提交信息日志记录什么写这里" 1.4 本地关联远程仓库 ...
  • 首先,你的gitlab远程已经有项目1.创建本地分支devgit branch dev2.切换到分支devgit checkout dev3.查看远程分支git branch -a4.将代码暂存在本地git add .5.给暂存在本地的代码打个taggit ...这时如果出行hint,...
  • [Java]远程/网络加载class

    万次阅读 2021-03-04 18:45:28
    大致的意思就是通过字节码文件加载,知道了这个方法就可以实现:能拿到字节码就能加载~ 代码实现 自定义类加载器 package cn.com.test; public class RemoteClassLoad extends ClassLoader{ public Class<
  • 现在电脑出现的问题是多种多样的,对小编而言,最简单有效的方式是用装机吧一键重装软件... 以上是远程主机强迫关闭了一个现有的连接解决方法,希望可以帮到大家,更多的详情了解,可以装机吧系统官网的教程讲解哦!
  • 向日葵连接服务器成功远程不

    千次阅读 2021-08-13 02:36:00
    向日葵连接服务器成功远程不 内容精选换一换需要准备一台Linux系统的物理服务器或虚拟机作为镜像制作服务器,即宿主机,并为宿主机安装Linux操作系统。以CentOS 7.3 64bit操作系统为例,安装时必须选择安装GUI桌面和...
  • 相当于一个接口,具体哪里找,怎么找找,就需要编写具体的代码实现,就相当于java中的多态差不多意思。 log4j2提供了很多查找方法: 我们主要看一下本次漏洞的罪魁祸首:JNDI 什么是JNDI?它是干嘛的??我们问...
  • 场景:项目被改崩了,需要重新开始编码 命令: git fetch --all git reset --hard origin/xxx IDEA: 选择reset HEAD 选择Hard,输入你要同步到本地的分支
  • 远程主机强迫关闭了一个现有的连接”,按照foxmail中的系统设置——账号——服务器,勾选“如果服务器支持,就使用STARTTLS加密传输”+ 发件服务器身份验证中选择“不需要验证”。解决了问题 ...
  • 取消远程依赖,用本地依赖

    千次阅读 2021-11-17 21:02:31
    意思就是说不用远程的sdk,而是把sdk下载到本地,和项目在同一目录,然后取消原来引用的远程sdk,使用本地的sdk 上面是项目的根目录下的settings.gradle 然后再在项目引用的库中的build.gradle中 这样就可以在本地...
  • 搭建frp服务器进行内网穿透,可用且推荐,可以达到不错的速度,且理论上可以开放任何想要的端口,可以实现的功能不止远程桌面或者文件共享 4、frp配置 3.1 前期工作 搭建一个完整的frp服务链,我们需要: VPS一台...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 337,717
精华内容 135,086
关键字:

去远的意思