【问题标题】:Sample covariance matrix for each pixel (taking the neighboring pixel) and applying for entire image dimension每个像素的样本协方差矩阵(取相邻像素)并应用于整个图像维度
【发布时间】:2016-03-11 22:28:02
【问题描述】:

以下是单个像素的样本协方差矩阵的代码。我为 (1,1) 拍摄了 10 个相邻像素,包括堆叠图像的第一个像素。 y_1、y_2、y_3 和 y_4 是我的四个图像。 如果问题不清楚,请告诉我。

y_cal=cat(3, y_1, y_2, y_3, y_4);

Y_new=reshape(y_cal, [5586, 4]);

Y_new_cov=Y_new(1:10,:);

Y_new_cell = arrayfun(@(ri) Y_new_cov(ri, :)', 1:10, 'UniformOutput', 0);

Y_new_cell_tr= cellfun(@ctranspose, Y_new_cell , 'UniformOutput', 0);

Y_covariance_initial = cellfun(@mtimes, Y_new_cell,Y_new_cell_tr, 'UniformOutput', 0);

Y_covariance_final = Y_covariance_initial{1,1}+Y_covariance_initial{1,2}+Y_covariance_initial{1,3}+Y_covariance_initial{1,4}+Y_covariance_initial{1,5}+Y_covariance_initial{1,6}+Y_covariance_initial{1,7}+Y_covariance_initial{1,8}+Y_covariance_initial{1,9}+Y_covariance_initial{1,10};

这里有 10 个像素是在实现协方差的地方手动获取的。我的图像尺寸为 114 X 49。所以最终生成的协方差矩阵是 114 X 49 x 4 X 4。我应该如何应用方形窗口来选择目标像素的相邻像素并继续其他像素?

请提供必要的帮助,因为我花了两个月的时间编写此代码,并且来自非编码背景。我们将非常感谢您的帮助。

问候

【问题讨论】:

  • 请不要破坏您的帖子。

标签: image matlab image-processing matrix octave


【解决方案1】:

标准方法是使用nlfilter。对于这个函数,你提供你的函数(计算协方差的那个),它将把它应用到你大小的滑动窗口。例如:

octave> img = rand (64, 64);
octave> img_cov = nlfilter (img, [10 10], @(x) cov (x(:)));

将为每个大小为[10 10] 的滑动块调用cov (x(:))(在用零填充原始图像之后),并返回一个大小为[64 64] 的数组(与输入图像相同)以及这些结果。由于您使用的是 Octave,因此您的窗口和图像可能具有任意数量的维度。所以你可以这样做:

octave> img = rand (64, 64, 3, 4);
octave> img_cov = nlfilter (img, [10 10 3 4], @(x) cov (x(:)));

另一种方法是将 n 维图像中的所有滑动窗口放入一列(使用 im2col),使用适用于每一列的函数,然后使用 col2im 重新构建图像。这可能会更快,也可能不会更快,但如果你能绕开它,它确实会给你更多的灵活性:

octave> img = rand (64, 64);
octave> im_cols = im2col (img, [10 10], "sliding");
octave> im_cov = you_nd_cov_function (im_cols);
octave> img_cov = col2im (cov (im_cols), [1 1], [55 55], "sliding");

【讨论】:

  • @Lalu 我的回答非常明确,它只适用于 Octave。 Matlab 的nlfilter 不处理 N 维输入。如果您不使用 Octave,为什么在您的问题上使用 octave 标签?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 2018-01-01
  • 2011-08-04
  • 2018-04-28
相关资源
最近更新 更多