2014-01-20 3 views
0

У меня есть изображение в виде серой шкалы, хранящееся в матрице Mat, и мне предлагается извлечь ковариации для горизонтального и вертикального перемещения по 1 пикселю.Matlab: Covariances для 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 на 1, где шахта 2 на 2. ли я неправильно в cov функции или я не понял вопрос правильно, и эта задача должна быть решена полностью отличается?

ответ

2

Поскольку ваше изображение является 2-мерным, вы получите covariance matrix (link) размером 2*2. Вы определенно решили задачу найти ковариацию, но каждый элемент матрицы 2*2 представляет собой другой индекс. Допустим, что матрица равна [A B; C D]. A и D будут представлять дисперсию входов. B и C будут представлять собой кросс-ковариацию между входами.

+1

Благодарим вас, поэтому, взяв элемент B или C, используя covMatH (1,2), ответ правильный! – evolved

 Смежные вопросы

  • Нет связанных вопросов^_^