我正在matlab处理用于隐写术的图像。到目前为止,在我的工作中,我一直在使用块处理命令blockproc将图像分解为块以进行处理。我现在正在寻找开始使用两个图像(秘密和封面)的方法,但是无论如何我都无法使用带有两个输入矩阵而不是一个的blockproc。
有人知道这样做的方法吗?
回答:
blockproc仅允许您
遍历单个图像,但不会阻止您对所需的任何数据进行
操作 。用户功能的签名将“块结构”作为输入,该“块结构”不仅包含数据字段(在所有blockproc示例中使用),还包含其他几个字段,其中之一是“位置”。您可以使用它来确定输入图像中的“您所在的位置”,并确定需要对该块进行哪些其他数据处理。
例如,以下是您如何对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) 使用块结构的“位置”字段,您可以找出特定块所需的第二,第三,第四等数据集的适当部分。
希望这可以帮助!
-布伦丹
更多&回答...