- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有这张灰度原始图像:
我想检测物体的边缘。但是,它会受到边缘附近光照的影响。这是我在高斯模糊和 Canny 边缘检测之后得到的:
这是我的代码:
cv::cvtColor(imgOriginal, imgGrayscale, CV_BGR2GRAY); // convert to grayscale
cv::GaussianBlur(crop, // input image
imgBlurred, // output image
cv::Size(5, 5), // smoothing window width and height in pixels
5); // sigma value, determines how much the image will be blurred
cv::Canny(imgBlurred, // input image
imgCanny, // output image
0, // low threshold
100); // high threshold
光源在物体下方。物体边缘的照明来自光源或光的反射。他们总是在同一个地方。
照明也被检测为边缘。我尝试了其他几种方法,例如连接组件标记和使用示例代码(这里是初学者)对图像进行二值化,但都无济于事。有什么方法可以检测干净的边缘照明吗?
最佳答案
可以使用一些 erosion 去除背景光 block 。具有相当大的内核,因为对象比光 block 大得多
您可以尝试的另一种常用技术是使用 distance transform + watershed .距离变换可能会返回您确定在对象内部的点(因为对象几乎没有黑暗区域)。 Watershed 将尝试找到与确认的点相连(通过比较梯度)的区域。如果距离变换给出对象内部的多个点,您可能需要在分水岭之后组合多个区域。
关于c++ - 受光照影响的边缘检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42639606/
我正在使用 JOGL 库开发一些 OpenGL 游戏。 当我定期绘制物体时,例如直接在显示方法中使用GL_QUADS,场景照明出现在对象上。 但是,当我在 init 方法中准备对象并在显示列表中使用
我正在写一个非常小的游戏,在这个游戏中玩家拿着手电筒。 游戏发生的世界是一个小房子。 问题是我的墙是通过绘制多边形绘制的,一个多边形就是一面墙。因此,当我将光照射到墙上时,它不会亮起,只有当光照射到其
我只是在编写一个简单的程序来使用顶点数组对象绘制体素。当我运行程序时,我无法使照明正常工作,它看起来与未启用灯时一样。这是代码片段。显示功能 void GraphicVoxel::display()
我和我的团队刚刚将我们的游戏从 java2d 移植到 LWJGL,现在想要添加照明。我们到底想添加什么: 发光且可移动的元素/实体。 静态照明 我们已经用谷歌搜索了一段时间,但有点迷失,因为我们不知道
所以我有一个 3D 对象,我用以下光线绘制: GLfloat light_diffuse[] = {1.0, 1.0, 1.0, 0.9}; /* White light. */ GLflo
我试图找到加载到 opengl 程序中的任意对象的 vector 归一化。我正在尝试计算所有顶点的法线。我收集到的是,我需要首先计算面的法线,然后找到顶点法线的平均值。 当我运行程序时,某些对象被正确
我正在尝试在 Vulkan 着色器中为单个光源实现 Blinn-Phong 着色,但我得到的结果不是我所期望的。 输出如下所示: 灯光位置应在相机右侧的后面,这在图里上正确表示,但在圆圈上却没有。我不
我已经有了这个不再那么小的基于图 block 的游戏,这是我的第一个真正的 OpenGL 项目。我想将每个图 block 渲染为 3D 对象。因此,首先我创建了一些对象,例如立方体和球体,为它们提供了
这是我第一次尝试创建一个基本的灯光系统,该系统使用顶部有白色圆圈的黑色纹理。我阅读了有关该问题的各种帖子,但我只是不知道我做错了什么。 我想要的是环境是黑暗的,光线是白色的,但是将 spritebat
我是 GLES 2.0 的新手。这真的让我很紧张,因为 OpenGL ES 1 II 只是设置了 GL_LIGHTNING1,然后设置了光照。在 GLES 2.0 中它不起作用。实际上整个屏幕都是黑色
我想问一个关于我在 OpenGL 中的光照效果的问题。 我正在尝试添加照明,但我认为这不是很好,而且我看到一些 2D 照明图片比我的好得多。 问题:我做了一个聚光灯,但我希望它能随着光照范围变小而变暗
我又回到了 Unity。我曾经使用 Unity 4 来创建我的关卡,在那里我可以从我的枪中射出实时灯光。我也使用 Probuilder 来创建我的场景,并且有很多汽车和巡逻 guard 。而且很顺利。
图像素描特效 图像素描特效主要经过以下几个步骤: 调用cv.cvtcolor()函数将彩色图像灰度化处理; 通过cv.gaussianblur()函数实现高斯滤波降噪; 边缘检测采用canny算
我正在尝试在片段着色器中实现 Oren-Nayar 光照,如图所示 here . 但是,我在地形上得到了一些奇怪的光照效果,如下所示。 我目前正在向着色器发送“视角方向”制服作为相机的“前” vect
我有一张包含很多 Sprite 的 map 。我可以向具有漫反射阴影的 Sprite 添加 Material ,而不是添加大量灯光。但这不会给我想要的结果。并且性能很重。 例子 在第一张图片中,您可以
我是一名优秀的程序员,十分优秀!