问题标签 [scanline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
117 浏览

opengl - 使用openGL进行粒子过滤器的扫描线

我正在为 C++ 中的 3D 立方体跟踪实现粒子过滤器。

在为粒子分配权重时,我遇到了一个重大问题,因为权重是基于样本点和像素之间的距离误差(在这种情况下)(如下所述)。

目前,我能够从笔记本电脑上的摄像头获取视频流,将其显示在屏幕上并在其上绘制粒子。我还能够提取从相机检测到的物体的边缘并找到它们的轮廓坐标。

截屏

以下是如何检测轮廓坐标:

然而,正如我所说,粒子是在视频流之上绘制的(如屏幕截图所示)。每个平面被划分为一个网格。

这是如何完成的:

我现在的问题如下:

  • 仅收集每个粒子的所有六个网格的边界点(样本点)
  • 从每个这样的点绘制一条扫描线,距离该点在两个方向上的大小为 20 像素

需要第二个要点才能找到样本点和检测到的边缘之间的距离,如下图所示。

这是 2D 的简化版本。每条绿线代表一条扫描线,“距离”是采样点与边缘中的像素之间的距离

如果有人可以建议如何找到距离的解决方案,或者最好可以发布一些代码片段,我们将不胜感激。

0 投票
1 回答
253 浏览

segment-tree - 如何使用线段树和扫描线

给定 300000 个段。考虑任何一对段:a = [l1,r1]b = [l2,r2]。如果l2 >= l1r2 <= r1,它是“好”对。如果a == b,则为“坏”对。过分来说,这是“坏”的一对。

如何使用段树和扫描线查找给定段中所有“好”对的数量?

0 投票
1 回答
384 浏览

javascript - 扫描线算法:计算边缘的 x

我正在尝试在 Javascript 中实现扫描线算法。看起来我对 x 的计算是错误的,因为线条太短或太长。

这些边缘应该被填充:

在此处输入图像描述

这就是我的扫描线代码填充它的方式:

在此处输入图像描述

我的边缘表有这些字段:

每条扫描线后的新 X 是这样计算的:

这个计算有什么问题?

0 投票
1 回答
441 浏览

delphi - delphi 未声明的标识符:“扫描线”

我在 Delphi 7 中有以下错误消息:

未声明的标识符:“扫描线”

我的用途:使用 Windows、消息、SysUtils、变体、类、图形、控件、表单、对话框、菜单、按钮、StdCtrls、ExtCtrls、math、ComCtrls;

我的部分代码:

其中 pxl 是PByteArray;

screenshot是将所选区域捕获到位图中的过程...

使用图形库的 AFAIK 扫描线功能,但它不起作用..

我做错了什么?

谢谢

0 投票
3 回答
386 浏览

java - 如何使用 java.util.Scanner 正确扫描用户输入?

我已经实现了以下代码以小写字符打印短语:

我不知道我的实施有什么问题!它可以正常编译,但是当我运行代码并键入输入短语时,它会冻结。

0 投票
1 回答
124 浏览

graphics - 同步椭圆扫描转换

问题:给定第一象限中的两个点(位于椭圆上)(x1,y1) 和 (x2,y2)。扫描从两端同时转换椭圆/椭圆弧/点绘图应同时从两端开始。

到目前为止我的解决方案:我可以使用中点扫描转换算法轻松地将椭圆从 (x1,y1) 扫描转换为 (x2,y2) 或反之亦然。但是,什么时候需要同时完成,我不知道。我提到的资料显示椭圆中只有象限对称性,所以我无法考虑如何同时绘制它。

0 投票
2 回答
73 浏览

go - 这个“常见的成语”实际上是如何工作的?

查看golang 的 2D 切片的文档,无法理解上一个示例中使用的语法:

我找到了将其添加到文档中的更改请求,并且更改作者有这个正常/易于理解的代码:

但是,有以下评论:

美好的。另一个常见的成语是避免数学:

picture[i], pixels = pixels[:XSize], pixels[XSize:]

我的问题是上述如何实现与!“避免数学”方法相同的效果?一些关于正在发生的事情的文档会很棒。

0 投票
2 回答
1529 浏览

c++ - 实现扫描线算法

我的任务是为作业实施扫描线算法的一个版本。该程序通过从文本文件中读取顶点和颜色列表来工作。一次从队列中弹出三个顶点和三种颜色,然后绘制三角形的边。到目前为止,我的程序非常完美地做到了这一点。在此之前,我们的任务是绘制矩形,并且在运行测试后立即清楚地表明,程序需要翻转 y 坐标才能正确绘制图像。

问题就在于此。我在这里找到了一些扫描线三角形填充函数的算法,但我注意到我必须修改它们才能考虑到图像被翻转的事实。在计算机图形网格中,较高的 y 值朝向底部。在组织给定三角形的三个顶点时,通常的做法是将 y 值最低的顶点指定为顶部,将 y 值最高的顶点指定为底部。为了解释图像翻转,我将其倒置。

无论我做什么,我都无法正确填充图像。只要在绘制单个像素时不翻转 y 值并且顶点以较低 y 值朝向顶部的预期方式排序,它将按原样使用这些函数。但是,生成的图像会垂直翻转。

以下功能几乎是程序的全部,除了我认为不需要任何更正的线条图。

为了提供一些视角,这是未填充任何内容时的结果图像:http: //imgur.com/a/VOpWJ

当仅运行 fillFlatBottom 时会发生这种情况:http: //imgur.com/a/nexR9

当仅运行 fillFlatTop 时会发生这种情况:http: //imgur.com/a/flRCK

我到底做错了什么?很明显,线算法不会导致这个问题。我要么错误地计算了中点(即 vNew)的点,要么我以某种方式弄乱了填充算法。

0 投票
0 回答
285 浏览

php - PHP shell_exec() 的行为与终端命令行 MacOS 不同

Scanline 是一个简单的命令行实用程序,用于从 twain 扫描仪扫描文档。 http://blog.scottkleper.com/scanline-command-line-scanner-for-mac/

我正在尝试通过使用 shell_exec() 的 PHP 脚本来使用 Scanline;就像我直接从 MacOS 的终端使用它一样。

当我直接从命令行运行 Scanline 时,它​​会检测到所有附加的扫描仪并将它们打印出来./scanline -list

当我使用 shell_exec() 运行 Scanline 时,它​​没有检测到任何设备。

到目前为止,我已将 apache 用户更改为我的本地用户,并将本地用户添加到 sudoers 文件中。如果我在 shell_exec() 中运行“whoami”,结果与在命令行中运行它的结果相同。

我已经printenv在命令行中使用打印了环境,并在使用 putenv() 执行 shell_exec() 之前在我的 php 脚本中设置了所有相同的变量;如果我运行 shell_exec('printenv 2>&1'),它与我在命令行中运行 printenv 时的环境完全相同。

所有权限都是正确的并允许访问,并且扫描线在通过 shell_exec() 执行时运行而没有错误(我检查了 apache 的错误日志,并error_reporting(E_ALL);在 PHP 文件的顶部放置了一个以打印出任何问题)。程序执行方式的唯一区别是在命令行中检测到设备,并通过 shell_exec() 运行,没有找到设备。

关于在命令行和使用 shell_exec() 之间我还可能缺少什么的任何想法?

我还尝试交替使用 system()、exec() 和 shell_exec(),结果相同。

0 投票
0 回答
84 浏览

objective-c - ScanLine洪水填充线程1:EXC_BAD_ACCESS(代码=1,地址=0x10b48427c)

在此处输入图像描述我使用https://github.com/Chintan-Dave/UIImageScanlineFloodfill在我的 swift 代码中实现扫描线洪水填充。有时图像被填充,有时它会抛出异常,例如

在 obj-c 的 UIImage+FloodFill.m 文件的 getColorCode 函数中,我使用桥接头来实现代码,请帮助...