嵌入算法:( 1 ) 从 Q R 码图像的第 1 行像素开始 , 读取连续两行像素的像素值 , 如果相同 , 则向下移动一行 , 继续读取连续两行像素的像素值 。以此类推 , 当读取到两行像素 , 不相同时 , 则进入步骤( 2) 。
( 2 ) 若从步骤 ( 1) 进入( 2) , 则从左到右 , 读取当前两行像素中 , 第 1 行像素的每一个像素点 , 当该行像素中某一个像素点满足条件 a 或者条件 b 时 , 见表 4 , 则记录该像素点的坐标( XS , Y S ) , 进入步骤( 3 ) , 否则继续读取第 1行中的下一个像素 。 若从步骤( 4) 进入( 2) , 则从步骤( 4 ) 所在的坐标位置开始 , 继续寻找新的坐标( X S , Y S ) , 然后进入步骤 ( 3) 。
( 3 ) 从步骤( 2) 中读取的像素点的位置开始 , 继续读取第 1 行中后面的像素 , 当寻找到某一个像素点满足条件c 或者条件 d 时 , 见表 4 , 则记录该像素点的坐标( XE , Y E ) , 并进入步骤( 4) , 否则继续读取第 1 行的下一个像素点 。
( 4 ) 将待嵌入的水印信息依顺序取出2 bi t大小的信息 , 并根据表 3 , 选择对应需要修改的 LS B 值 , 修改坐标( XS , Y S) 到坐标( XE , Y E ) 上的连续 n *M 个像素的 LS B 值 。 至此 , 完成一次大小为2 bi t的水印嵌入 。 然后转入步骤( 2) , 继续寻找该行剩余的水印嵌入位置 。 当此行像素读取完成 , 进入步骤( 1 ) , 继续寻找可嵌入水印的像素 , 直到完成所有水印的嵌入 。
提取算法( 1 ) 从 Q R 码图像的第 1 行像素开始 , 读取连续 3 行像素的像素值 , 当满足第 2 行和第 3 行的像素相同 , 而第1 行与第 2 行 、 第 3 行的像素不同时 , 进入步骤( 2 ) , 否则向下移动一行继续读取连续 3 行的像素值 , 以此类推 。
( 2 ) 若从步骤( 1) 进入 , 则从左到右 , 读取当前第 1 行中的每一个像素 , 当第 1 行中某一个像素点是黑色像素并且满足条件 a 或者条件 b 时 , 或者当第 1 行中某一个像素点为非黑白色像素并且满足条件 a 或者条件 b 时 , 条件描述见表 4 , 则记录该像素点的坐标( X S , Y S ) , 进入步骤( 3) , 否则继续读取第 1 行的下一个像素 。 若从步骤
( 4 ) 进入 , 则继续步骤( 4) 的坐标位置 , 继续寻找新的坐标 ( X S , Y S) 。
( 3 ) 接着步骤( 2) 中读取的像素点位置 , 继续读取第 1 行中后面的像素值 , 当寻找到某一个像素点是黑色像素点并且满足条件 c 或者满足条件 d 时 , 或者是非黑白色像素点并且满足条件 c 或者条件 d 时 , 见表 4 , 则记录该像素点的坐标 ( X E , Y E ) , 并进入步骤( 4 ) , 否则继续读取第 1 行的下一个像素 。
( 4) 读取坐标( X S , Y S) 到坐标( XE , Y E ) 上的连续 n *M 个像素的 LS B 值 , 比较选择出 n *M 个像素中重复最多的 LS B 值 。 根据表 3 , 输出对应的水印信息 。然后转入步骤( 2) , 继续寻找该行剩余的水印 。当本行像素读取完成 , 进入步骤( 1) , 读取下面的 3 行连续像素 , 直到完成所有水印信息的提取 。
求助各位大神,我matlab没接触过,求助大神帮我编写一下