Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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 图像处理中的张量结构_Image_Matlab - Fatal编程技术网

Image 图像处理中的张量结构

Image 图像处理中的张量结构,image,matlab,Image,Matlab,我的问题是关于这个环节的问题 据我所知,张量结构是一个矩阵,其元素是图像梯度的平方。 该等式也可在该链接中找到 我对梯度矩阵的平方表示怀疑 问题一:当我对图像进行梯度导数时,得到的结果同样是一个具有图像尺寸的矩阵。现在,当我对矩阵求平方以得到上面公式所示的导数的平方时,我有点困惑。我们怎么做?(我使用Matlab符号,因为我对它们更熟悉) 1)Ix_平方=Ix转置(Ix);%结果是一个正方形矩阵 或 2) Ix_平方=Ix.Ix;%结果是Ix的维度矩阵 (其中每个索引处的像素值与其自身相乘)

我的问题是关于这个环节的问题

据我所知,张量结构是一个矩阵,其元素是图像梯度的平方。
该等式也可在该链接中找到

我对梯度矩阵的平方表示怀疑

问题一:当我对图像进行梯度导数时,得到的结果同样是一个具有图像尺寸的矩阵。现在,当我对矩阵求平方以得到上面公式所示的导数的平方时,我有点困惑。我们怎么做?(我使用Matlab符号,因为我对它们更熟悉)

1)Ix_平方=Ix转置(Ix);%结果是一个正方形矩阵

2)
Ix_平方=Ix.Ix;%结果是Ix的维度矩阵
(其中每个索引处的像素值与其自身相乘)


问题二:同样,wiki解释了张量结构A是一个对称的平方矩阵。这意味着,Ix和Iy也必须是平方矩阵,以实现作为对称平方矩阵的A。回到图像,这是否意味着我只能找出正方形图像的结构张量?而不是非平方矩阵?或者我应该将我的矩形图像分割成正方形的面片,并将面片的张量结构存储为一个数组

与计算图像梯度不要求图像为矢量一样,计算图像的结构张量也不要求图像为方阵

您正在混合结构张量(实际上是一个正方形对称矩阵)及其定义域的值,这恰好是一个由Matlab中的矩阵表示的矩形图像。两者都不相关。图像可以定义在一个圆形区域上,你仍然可以计算结构张量,值仍然是矩阵,尽管是在一个圆形区域上

实际上,在2D中,结构张量是一个2x2矩阵。比你的图像小得多。但是,对于梯度,它是为每个像素定义的值。所以,当你计算

 Ix_squared = Ix.* Ix

只得到结构张量矩阵的四个系数中的第一个。同样地,
Ix
本身(根据您的符号,可能是)只是梯度的一个组成部分。

我的符号:Ix,Iy=[MxN]维图像I的x,y方向的梯度。现在,张量结构A是一个2x2矩阵,由A11=Ix_平方,A12=A21=Ixy&A22=Iy_平方组成。那么,你是说MxN图像有M*N个2x2结构张量吗?+1-在进一步的解释中做得很好!是的,对于图像中的每个位置或某些位置,您将围绕该像素上的一个区域,收集所有Ix^2、Iy^2和Ixy项,并将它们相加。然后,这些术语中的每一项都将进入一个2 x 2矩阵,表示为
a
。我是你提到的那篇文章的作者。要回答您的问题(实际上它们已经在下面的答案中得到了回答):问题1-您应该执行
Ix.*Ix
。问题#2-不,结构张量可以为任何大小的矩阵定义。计算结构张量矩阵所需的所有值,然后为图像中计算的每个面片创建这些值的2 x 2矩阵。在一个特定的补丁中,您可以将所有Ix^2、Iy^2和Ixy术语加在一起。谢谢!那有帮助!