问题标签 [sobel]

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 回答
492 浏览

python - Python OpenCV 3.1.0 错误:当我尝试使用 Sobel 运算符时,图像数据无法转换为浮点数

我正在使用此处显示的示例:http: //docs.opencv.org/3.1.0/d5/d0f/tutorial_py_gradients.html

开始使用 Sobel 运算符处理 python 中的图像。但是当我运行它时会抛出错误:TypeError:图像数据无法转换为浮点数。

0 投票
1 回答
420 浏览

python - 应用水平 Sobel 蒙版将图像旋转 180 度

在我的一个个人项目中,我尝试在灰度图像上应用以下水平边缘蒙版。通过应用水平边缘蒙版,我试图检测图像中的水平边缘。

当我试图用上面给出的掩码对我的图像矩阵进行卷积时,输出图像旋转了 180 度。我不确定这是预期的行为还是我做错了什么?

这是卷积的代码片段。

原始灰度输入图像在这里 - 在此处输入图像描述

这是生成的输出。

在此处输入图像描述

0 投票
0 回答
533 浏览

python - Matlab filter2 和 opencv sobel 产生不同的图像梯度

我需要为图像中的补丁实现定向梯度直方图(每个补丁一个 HOG 特征向量,而不是整个图像的一个 HOG)。我一直在此链接上使用 Matlab 代码并将代码翻译为 opencv python。我已经进行了一些更改以适应我的目的,Matlab 和 Python 代码之间的主要区别之一是我获取每个单元格的渐变的方式,而在 Matlab 中我使用的是上面链接中使用的filter2 ,在 Opencv 中,我使用Sobel运算符。我的问题是这两种方法产生的渐变是不同的,我很难修复它。我尝试更改图像和内核数字表示。我也试过在opencv中使用filter2D ,还有imfilter在 Matlab 中,但基本上没有一个工作。这是使用filter2计算梯度的 Matlab 代码:

这是我使用Sobel运算符编写的 Python OpenCV 版本:

编辑:我按照这里的帖子,在 Matlab 中使用双线性方法,在 OpenCV 中使用 cv2.INTER_LINEAR,并在 Matlab 中停用抗锯齿,但两个调整大小的图像仍然不完全匹配。这是 Matlab 中测试图像的调整大小图像的一部分: 在此处输入图像描述

这是来自 OpenCV 的相同部分: 在此处输入图像描述

第二次编辑:事实证明,舍入的方式会导致这种差异。所以,我将我的 OpenCV 代码更改为:

和 Matlab:

现在两者都给了我相同的结果。 在此处输入图像描述

我认为问题是由衍生方法引起的。我在 OpenCV 中检查了 cv2.filter2D,但结果仍然不同。我希望有人能给我提示可能导致问题的原因。

0 投票
1 回答
372 浏览

java - Sobel filter imlementation

I have trouble implementing Sobele filter for edge detection.

First of all, I make SOBEL_VERTICAL and SOBEL_HORIZONTAL convolution and then calculate color of pixel using this formula: G = sqrt(Gx * Gx + Gy * Gy)

Code:

enter image description here Right image is wrong

0 投票
2 回答
743 浏览

c++ - opencv Sobel算子是否计算相关性?

opencv Sobel算子是否计算相关性,而不是卷积?我知道 filter2D 函数计算相关性,我刚刚发现(根据代码的结果)Sobel 算子也计算相关性。这是预期的吗?我在这里错过了什么吗?

0 投票
1 回答
1223 浏览

matlab - 在matlab中使用sobel掩码算子找到梯度

我正在使用以下代码使用 sobel mask 屏蔽图像。

我的问题是,有时梯度方向值是“NaN”,如何避免呢?

二、如何将梯度方向量化为8个区域并找到图像的特征向量?请有人帮助我。

0 投票
2 回答
2332 浏览

python - 在 python 中可视化 sobel 梯度

我正在尝试在 Python 中实现 sobel 运算符并将其可视化。但是,我正在努力解决如何做到这一点。我有以下代码,它当前计算每个像素的梯度。

现在,gradient_magnitude 通常是一个远远超出 0-255 范围的值,例如 990.0、1002.0、778 等。

所以我想做的是可视化渐变,但我不确定如何。大多数在线资源只提到计算梯度角度和幅度,而不是如何在图像中表示它。

0 投票
2 回答
63 浏览

matlab - 如何创建图像叠加层?改变边缘颜色

如何创建图像叠加层?更改边缘颜色:为了将边缘更改为绿色,起初我使用了“sobel”,但是覆盖部分有一个错误:“IMG 必须是灰度或 RGB 图像的数组:writeVideo(writer,double(out));” 为什么?

0 投票
1 回答
260 浏览

image-processing - Skimage filters.sobel_v 结果没有意义。为什么?

scikit-image 的文档中,它说用于检测垂直线的内核是:

如果我做:

然后 print Lx,我得到:

这没有任何意义,因为结果应该是:

而不是2, 在中心位置。

到底是怎么回事?

0 投票
1 回答
1090 浏览

cuda - 使用 CUDA 和 Sobel 滤波器进行卷积

所以我已经在 CUDA 中实现(或至少尝试过)Sobel 过滤器,我的代码如下。当我执行这个文件时,我得到了一个正确的 Sobel 过滤图像的一半,另一半是黑色的。我无法上传图片,因为它们是 .pgm 格式。因此,代码的作用是读取 .pgm 格式的灰度图像,并使用共享内存概念将 Sobel 过滤器掩码与其卷积。我使用 1024 x 1024 .pgm 图像作为输入,它返回一个 Sobel 过滤图像,其边缘有一半水平切割,所以下半部分是黑色的。有人可以帮我吗?另外,我对代码有点好奇,我不太明白第二批加载的作用,所以请你也解释一下。

索贝尔.cu

我的pgm.h