我在矩阵Mat
中有一个灰度图像,并要求提取1像素水平和垂直位移的协方差。
我考虑使用circshift
和cov
提取协方差。
Mat = magic(5); % this represents my gray scale image
MatHs = circshift(Mat,[0 1]); % horizontal displacement
MatVs = circshift(Mat,[1 0]); % vertical displacement
covMatH = cov(Mat,MatHs)
covMatV = cov(Mat,MatVs)
然而,Covmath和covmatv的结果必须为1 x 1的大小1 x 1。我是否误入了cov
函数,还是我没有正确理解该问题,并且必须完全不同?
由于您的图像是二维,因此您将收到大小2*2
的covariance matrix
(链接)。您肯定已经解决了找到协方差的任务,但是2*2
矩阵的每个元素都代表一个不同的索引。假设矩阵是[A B; C D]
。A
和D
将代表输入的差异。B
和C
代表输入之间的交叉交叉。