Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 梯度填充区域的识别_Image Processing - Fatal编程技术网

Image processing 梯度填充区域的识别

Image processing 梯度填充区域的识别,image-processing,Image Processing,我以前问过一个相关的问题: 但这一次,我有一个更简单的问题(我想)。给定一个区域(像素集),我想知道它是否填充了线性渐变。为此,我考虑使用3X3 sobel滤波器找出x和y方向的图像梯度,然后检查梯度方向。如果该方向保持不变,则该区域可分类为梯度填充区域 它适用于水平和垂直方向的渐变,但一般不适用。例如,对于45度线性渐变,渐变方向在1到3之间的相邻像素上变化很大 我无法理解为什么会发生这种情况以及如何解决它。理论上,它应该是1 说: Sobel算子在减少与纯中心差算子相关联的伪影的同时,并不具

我以前问过一个相关的问题:

但这一次,我有一个更简单的问题(我想)。给定一个区域(像素集),我想知道它是否填充了线性渐变。为此,我考虑使用3X3 sobel滤波器找出x和y方向的图像梯度,然后检查梯度方向。如果该方向保持不变,则该区域可分类为梯度填充区域

它适用于水平和垂直方向的渐变,但一般不适用。例如,对于45度线性渐变,渐变方向在1到3之间的相邻像素上变化很大

我无法理解为什么会发生这种情况以及如何解决它。理论上,它应该是1

说:

Sobel算子在减少与纯中心差算子相关联的伪影的同时,并不具有完美的旋转对称性。沙尔研究了如何优化这一特性。这里已经介绍了大小为5 x 5的过滤内核,但最常用的是

这是沙尔的论文,快乐学习:)
你的想法是对的,在计算空间导数时只需使用高斯滤波器。 最后,通过选择方向图像梯度大小的暗像素,得到梯度填充区域

编辑 维基百科上的文章

在我的代码中,我使用以下卷积核(水平然后垂直导数):

作为概念证明,在Mathematica中,使用包含倾斜梯度区域和垂直梯度区域的测试图像可以看到:


如果您考虑后续彩色线的渐变,您会发现绘制非直线(旋转)需要一个或多个分段。我的意思是,不是在现实世界中,但图像中的像素是有限的。我不懂数学,所以我不太懂,但我能感觉到你的建议。到目前为止,我已经尝试过在应用sobel滤波器之前使用高斯模糊对原始图像进行平滑处理,但它并不能解决我的问题。你是不是在建议一些不同的东西?另外,你的图像似乎使用了水平或垂直方向的渐变,你是否尝试了角度渐变,比如45度?你看到的图像包含倾斜和垂直渐变填充区域。我已经编辑了我的答案,添加了卷积核。你可以在你喜欢的卷积引擎中使用它们。有英文版本吗?不知道,你可以询问作者或使用翻译,即使他们表现很差
{
 {0.00623304, 0.012975, 0., -0.012975, -0.00623304},
 {0.0259501, 0.054019, 0., -0.054019, -0.0259501},
 {0.0581332, 0.121013, 0., -0.121013, -0.0581332},
 {0.0259501, 0.054019, 0., -0.054019, -0.0259501},
 {0.00623304, 0.012975, 0., -0.012975, -0.00623304}
}

{
 {0.00623304, 0.0259501, 0.0581332, 0.0259501, 0.00623304},
 {0.012975, 0.054019, 0.121013, 0.054019, 0.012975},
 {0., 0., 0., 0., 0.},
 {-0.012975, -0.054019, -0.121013, -0.054019, -0.012975},
 {-0.00623304, -0.0259501, -0.0581332, -0.0259501, -0.00623304}
}