相邻像素之间的绝对差异

Posted

技术标签:

【中文标题】相邻像素之间的绝对差异【英文标题】:Absolute difference between neighbouring pixels 【发布时间】:2014-02-04 01:51:54 【问题描述】:

我目前对我正在为我的论文阅读的这篇论文有疑问。在这篇论文中,作者表示他在一个有像素的块的每一侧使用一维滤波器来获取 4 个点。

论文名为:《Simplified inter-component Depth modeling in 3D hevc

可从 IEEE 或来自:

http://vclab.gist.ac.kr/papers/03/2013/S35_paper%2081.pdf.

此过滤器计算相邻像素的绝对差

我们计算 CTLB 每一侧的邻居的绝对差异。如果像素坐标如Figure 4 所示,则Eq. (1) 用于顶部和底部,而Eq. (2) 用于左侧和右侧。 C_horrc 表示考虑水平邻居的顶部和底部的水平相邻像素的绝对差。

左右两边同理,C_verrc代表垂直相邻像素的绝对差。

图 4:

A(0,0)  A(0,1)  A(0,2)  A(0,3)  ...
A(1,0)  A(1,1)  A(1,2)  A(1,3)  ...
A(2,0)  A(2,1)  A(2,2)  A(2,3)  ...
A(3,0)  A(3,1)  A(3,2)  A(3,3)  ...
...     ...     ...     ...     ...

等式 1:

C_hor(r,c) = |A(r,c+1) - A(r,c-1)|

等式 2:

C_ver(r,c) = |A(r+1,c) - A(r-1,c)|

我的问题是,有没有人知道他是如何通过使用上面的方程式获得 4 分的?此外,他会为边缘做什么,因为他不需要以前的像素?我目前正在尝试在 C++ 中实现这一点,尽管一个简单的 matlab 代码也会有所帮助,以便我能够理解它。

谢谢。

【问题讨论】:

提供论文名称会有很大帮助。另外,请展示您自提出问题以来的努力。 您好,添加了论文(我之前没有添加它,因为它来自 IEEE,除了上面写的内容外,他没有解释任何其他内容)。主要问题是我无法理解他是如何从使用这两个方程中得到 4 分的。如果有人向我解释这一点,我将能够对其进行编码。我刚刚提到了 Matlab,因为我需要使用标签,通常 Matlab 对于解释这样的东西非常有用。谢谢 【参考方案1】:

图 4 不只包含 4 个点。有“...”省略号表示他的意思是代表 A 中的所有点。

在 MATLAB 中有多种方法可以进行计算。一种方法是通过卷积,

 k=[1 0 -1;] 

 C_hor=abs(conv2(A,k,'same'));
 C_ver=abs(conv2(A,k.','same'));  

这里我使用了“相同”标志,假设我们想要在 A 之外外推,边缘处为零。

【讨论】:

嗨,我设法找到了该论文的在线 pdf 版本。我现在添加了它。我从论文中了解到,图 4 可以是 4x4、8x8、16x16 或 32x32 的块大小。他还指出,通过应用一维滤波器,他获得了四个点。现在我在想,通过应用类似于你在回复中给出的过滤器,他只需从差异最大的一侧选择四个点

以上是关于相邻像素之间的绝对差异的主要内容,如果未能解决你的问题,请参考以下文章

Android原生和Flutter使用过程的差异对比(一)

在 python 上比较图像并允许像素偏移差异

用于图像中的超像素的相邻和非相邻超像素

在 Python 中为图像中的每个像素选择 7*7 相邻像素的最快方法

DPCM预测编码

OCR:两帧之间的差异