使用多个输入矩阵进行块处理

Mic*_*len 5 matlab steganography image-processing

我正在使用matlab处理图像进行隐写术.到目前为止,在我的工作中,我一直在使用块处理命令blockproc来将图像分成块来处理它.我现在正在寻找开始处理两个图像,秘密和封面,但我无论如何都找不到使用两个输入矩阵而不是一个输入矩阵的blockproc.

有人会知道这样做的方法吗?

小智 6

blockproc允许您仅迭代单个图像,但不会阻止您对任何您想要的数据进行操作.用户函数的签名将"块结构"作为输入,其不仅包含数据字段(在所有blockproc示例中使用),还包含其他几个字段,其中一个是"location".您可以使用它来确定输入图像中的"您所在的位置",并确定在该块上操作所需的其他数据.

例如,这里是你如何在2个相同大小的图像上进行逐元素乘法.这是一个非常笨重的例子,但只是为了演示这看起来如何:

im1 = rand(100);
im2 = rand(100);
fun = @(bs) bs.data .* ...        
    im2(bs.location(1):bs.location(1)+9,bs.location(2):bs.location(2)+9);
im3 = blockproc(im1,[10 10],fun);
im4 = im1 .* im2;
isequal(im3,im4)
Run Code Online (Sandbox Code Playgroud)

使用块结构的"位置"字段,您可以找出该特定块所需的第2,第3,第4等数据集的相应部分.

希望这可以帮助!

-brendan