小编Ash*_*ppa的帖子

非最大抑制

我们已经知道你可以得到梯度方向,atan(dy/dx)它是与边缘正交的方向.现在我们有一个功课,我们应该将这个方向离散化为四个等级(x和y方向以及两个对角线),然后检查最佳匹配方向的两个像素邻居以进行非最大抑制.

我没有完全得到解决方案.显然我们有四个案例:

  1. abs(angle) < pi/8,所以渐变(粗略)指向x方向,因此我们检查img(i, j-1)img(i, j+1)(假设图像原点位于左上角)

  2. angle > pi/8 && angle <= 3*pi/8,所以渐变指向右上角.现在我认为我们需要检查img(i-1, j+1),img(i+1, j-1)但我们检查img(i-1, j-1),img(i+1, j+1)这似乎是正交对角线.

另外两个案例是相同的.我试图改变这个但是边缘看起来很奇怪所以这似乎是正确的但我不明白为什么.

谁可以给我解释一下这个?

computer-vision non-maximum-suppression

12
推荐指数
1
解决办法
5万
查看次数

如何在发布模式下启用TRACE宏?

TRACE宏当代码被编译可用于输出诊断消息到调试器的调试模式.在发布模式下,我需要相同的消息.有没有办法实现这个目标?

(请不要浪费你的时间讨论为什么我不应该在发布模式使用TRACE :-)

macros mfc trace

11
推荐指数
1
解决办法
1万
查看次数

Visual Studio/C++:如何关闭某些第一次机会异常调试消息?

当我CGAL在调试模式下执行我的C++代码(使用库)时,我在Output窗口中看到很多关于第一次机会异常的调试消息CGAL::Uncertain_conversion_exception.我知道第一次机会的例外是什么.

现在,我怎么关闭调试信息的显示了这一个类型的异常(CGAL::Uncertain_conversion_exception)?

我尽可能详细地喜欢我的调试消息,但是一旦我知道某个异常是什么并且我已经处理过它,我希望它能消失.例如,在这种情况下,CGAL例外被认为是天真的(和信息性的)并且不是引起关注的原因.我想把它关掉,仍然可以留意任何其他(新的)第一次机会异常.这在Visual Studio 2008中是否可行?我要求太多了吗?

debugging exception cgal visual-studio visual-c++

11
推荐指数
2
解决办法
9185
查看次数

TortoiseHg:如何在修订图中将节点哈希与其修订节点相匹配?

hg archive前一段时间给了别人一份我的代码.从那以后发生了很多提交,我不记得我给他的修改是哪一个.有一些关于我在.hg_archival.txt文件中给予该人的版本的信息.例如,它具有节点哈希信息node: 72f497079285b2c3cf4f8b86950664f84221cd63

使用.hg_archival.txt文件中的信息(如节点哈希)如何在TortoiseHg中显示的修订图中找到相应的修订节点?

mercurial tortoisehg

11
推荐指数
1
解决办法
2228
查看次数

nVIDIA CC 2.1 GPU warp调度程序如何一次发出2条指令进行扭曲?

注意:此问题特定于nVIDIA Compute Capability 2.1设备.以下信息可从CUDA编程指南v4.1获得:

在计算能力2.1设备中,每个SM具有48个SP(核心),用于整数和浮点运算.每个warp由32个连续的线程组成.每个SM都有2个warp调度程序.在每个指令发布时,一个warp调度程序选择一个准备好的线程warp并发出2个内核上的warp 指令.

我的疑惑:

  • 一个线程将在一个核心上执行.如何在单个时钟周期或单个多周期操作中向线程发出2条指令?
  • 这是否意味着2条指令应该相互独立?
  • 2个指令可以在核心上并行执行,也许是因为它们在核心中使用不同的执行单元?这是否也意味着只有在2条指令完成执行后或者在其中一条指令执行完之后,warp才会准备就绪?

cuda gpu gpu-warp

11
推荐指数
1
解决办法
4479
查看次数

CUDA:为什么按位运算符有时比逻辑运算符更快?

当我到挤压性能的最后一位出一个内核的,我通常会发现更换逻辑运算符(&&||有)位运算符(&|),使内核快一点点.通过查看CUDA Visual Profiler中的内核时间摘要可以观察到这一点.

那么,为什么bitwise运算符比CUDA中的逻辑运算符更快?我必须承认,它们并不总是更快,但很多时候它们都是.我想知道什么魔法可以给这个加速.

免责声明:我知道逻辑运算符短路和按位运算符不会.我很清楚如何滥用这些操作符导致错误的代码.我只是在结果逻辑保持不变的情况下小心使用这个替换,加速并且由此获得的加速对我来说很重要:-)

cuda bitwise-operators logical-operators

11
推荐指数
2
解决办法
5215
查看次数

配置Bullet Physics以获得速度

如何配置子弹引擎的速度,而不是物理精度?例如,是否可以增加摩擦力,使物体更快地静止?

目前,我只能跟踪速度优化:

btContactSolverInfo& info = dynamicsWorld->getSolverInfo();
info.m_numIterations = 4;
Run Code Online (Sandbox Code Playgroud)

performance bulletphysics

11
推荐指数
1
解决办法
1753
查看次数

CUDA纹理的不同寻址模式

我在边界寻址模式(cudaAddressModeBorder)中使用CUDA纹理.我正在阅读纹理坐标tex2D<float>().当纹理坐标落在纹理之外时,tex2D<float>()返回0.

如何将此返回的边框值更改0为其他值?我可以手动检查纹理坐标并自己设置边框值.我想知道是否有CUDA API我可以设置这样的边界值.

textures cuda border addressing-mode

11
推荐指数
1
解决办法
6115
查看次数

将GLUT与Visual C++ Express Edition一起使用

在Visual C++ Express Edition下使用GLUT(OpenGL Utility Toolkit)编译OpenGL应用程序的基本步骤是什么?

opengl glut visual-studio visual-c++

10
推荐指数
2
解决办法
2万
查看次数

使用大于窗口/显示大小的OpenGL纹理

我在使用大于OpenGL窗口的纹理或显示大小作为非显示渲染目标时遇到问题.
这个问题的解决方案是什么?

opengl textures

10
推荐指数
1
解决办法
1339
查看次数