如何覆盖矩阵中的特定值? MATLAB

时间:2018-05-04 18:41:20

标签: matlab

对于大学作业,我必须拍摄尺寸为512x512的图像,然后将效果应用于图像的特定块,如下图所示。

enter image description here

我设法通过使用索引访问图像的特定区域来实现这一目标,如下所示:

w1_region = [DCTImage(1:imageSizeQuarter, imageSizeQuarter+1:imageSizeHalf)];

对于w2和w3重复这一过程。这些区域的大小均为128x128,需要写回原始图像。

但是现在我需要做的是用已编辑的块覆盖原始图像的块,这样我就可以得到一个包含3个块的完整图像w1w2w3已被修改。

如何使用修改后的块覆盖定义原始图像的矩阵?有没有办法可以有效地说“从X开始覆盖矩阵中的值”?

我觉得有某种矩阵操作可以让我这样做,但我不完全确定哪一个。

1 个答案:

答案 0 :(得分:0)

您可以使用例如:

BlockFunc = @(block_struct) YourFunction(block_struct);
block_size = [128 128];
block_edges = blockproc(file_name,block_size,BlockFunc);

您应该只使用Name of YourFunction创建一个函数。此函数的输入是block_struct,您可以访问块位置及其数据。 此外,您可以使用全局变量来处理YourFunction和主脚本。