Выбор подмножества спаренных пикселей: Давайте начнем с набором уникальных горизонтальные пары пикселей. Если я выбираю пиксели в первом столбце A
и размещаю их в подмножестве x
, то по горизонтали соседние пиксели будут отображаться во втором столбце A
, и они будут помещены в подмножество y
. Я также могу добавить пиксели во втором столбце к подмножеству x
, а горизонтально смежные пиксели в третьем столбце затем будут помещены в подмножество y
. Повторяя это для всех столбцов в A
, мы видим, что пиксели в столбцах с 1 по 255 будут находиться в подмножестве x
, а пиксели в столбцах с 2 по 256 будут находиться в подмножестве y
.Поэтому matrix indexing будет выглядеть следующим образом:
x = A(:,1:end-1,1); %# All rows and columns 1 through 255 from red plane
y = A(:,2:end,1); %# All rows and columns 2 through 256 from red plane
Следуя подобной логике, как и выше, можно построить весь набор уникальных вертикальных пар пикселей в этой моде:
x = A(1:end-1,:,1); %# Rows 1 through 255 and all columns from red plane
y = A(2:end,:,1); %# Rows 2 through 256 and all columns from red plane
А также для множества уникальные диагональных пар пикселей, где «по диагонали» бежит от верхнего левого угла в правый нижний в матрице:
x = A(1:end-1,1:end-1,1); %# All but the last row and column
y = A(2:end,2:end,1); %# All but the first row and column
Или для «анти-диагоналей», где «Диагональ» проходит от левого нижнего в правый верхний в матрице:
x = A(2:end,1:end-1,1); %# All but the first row and last column
y = A(1:end-1,2:end,1); %# All but the last row and first column
Теперь вы можете выбрать любой из этих наборов x
и y
данных для выполнения статистических расчетов, которые вы хотите для красной цветовой плоскости. Вы можете повторить приведенное выше, заменив 2 или 3 для последнего индекса в каждой строке, чтобы получить расчет для зеленых и синих цветных плоскостей соответственно.
Выполнение статистических тестов: Эта часть проста. Существует уже встроенная функция CORRCOEF для вычисления коэффициента корреляции в MATLAB. Вы, возможно, придется изменить подмножества значений пикселов x
и y
в векторы столбцов первой помощи single-colon indexing:
r_xy = corrcoef(x(:),y(:));
функции существуют также для других формул, а также: MEAN для E(x)
, VAR для D(x)
и COV для cov(x,y)
.
Это домашнее задание? – Ross
Хмм, вид. Я знаю команды corrcoef и cov в Matlab. Но я хочу получить одно числовое значение (может быть плавающей точкой), которое я не получаю. Как получить одно значение цифры с помощью этого? Также желаем построить серию значений чисел на графике с серыми значениями пикселей в местоположении (x, y) по осям X и значениям серого пикселя на месте (x + 1, y) на оси Y. – Sm1
Оригинальный вопрос от OP начался здесь http://stackoverflow.com/q/3690246/404469 – gary