对于大学作业,我的任务是将效果应用于尺寸为512x512的图像的三个独立区域。如下图所示
但是我不确定我应该如何访问图像的特定区域。我无法使用裁剪,因为我需要稍后进一步转换和重建图像,以便我可以验证效果是否已正确应用。但不做:
imageSize = size(I,1);
imageSizeHalf = imageSize/2;
imageSizeQuarter = imageSize/4;
imageSizeEighth = imageSize/8;
然后尝试以这种方式访问矩阵维度(我甚至不知道该怎么做,我需要做什么来实现这个目标?)我不确定我应该如何访问这三个图像的特定区域。
答案 0 :(得分:0)
使这个更整洁的一种方法是定义一个函数,该函数返回特定块的行和列的索引。
function [rows, cols] = get_block_indices(block_row, block_col, block_size)
rows = (1:block_size) + block_size*(block_row-1);
cols = (1:block_size) + block_size*(block_col-1);
然后,您可以访问块网格的第1行第2列的块W1,如下所示
[rows, cols] = get_block_indices(1, 2, block_size);
I(rows, cols) = your_effect_function(I(rows, cols));
假设block_size = size(I,1)/4
。