matlab 图像处理--OPAP信息隐藏

老子叫甜甜 提交于 2019-11-29 05:52:55

%%OPAP

I1 = imread('Lena.jpg');
[M N] = size(I1);
I2 = I1;
x = input('input bits');

for i = 1 : M
    for j = 1 : N
        S = round(rand(1 , x))
        pixel = I2(i,j);
        count = 1;
        for k = 1 : x
            pixel2 = bitset(pixel , count , S(k));
            count = count + 1;
            if (count > x)
                break
            end
        end
        
        
        sgm = pixel2 - pixel;
        if(sgm > 2^(x-1) && sgm < 2^x && pixel >= 2^x)
            finalP = pixel2 - 2^x;
        else if(sgm < -2^(x-1) && sgm > -2^x && pixel <= 255 - 2^x)
                finalP = pixel2 + 2^x;
            else
                finalP = pixel2;
            end
        end
        
        I2(i,j) = finalP;
        
    end
end
imshow(I2)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!