i have written a code to hide a grayscale image within a rgb image.but while decrypting.the rgb image is retrieved.but the grayscale image is not.a black image is displayed instead.
5 次查看(过去 30 天)
显示 更早的评论
%/encryption
p=imread('flower.jpg');
q=imread('msgimage.jpg');
p1=rgb2gray(p)
s=size(q);
[r c]=size(p1);
figure(1),imshow(q),title('original');
q2=imresize(q,[r c]);
qr=q2(:,:,1);
qg=q2(:,:,2);
qb=q2(:,:,3);
l=r*c;
qr=bitand(qr,uint8(240));
p2=bitshift(p1,-3);
im=bitor(qr,p2);
im=cat(3,qr,qg,qb);
%im1=imresize(im1,[s(1) s(2)]);
figure(2),imshow(p1);
figure(3),imshow(im),title('final');
=========================================
%/decryption
ir=im(:,:,1);
ig=im(:,:,2);
ib=im(:,:,3);
x=bitand(ir,uint8(240));
y=bitand(ir,uint8(15));
x=cat(3,ir,ig,ib);
figure(1),imshow(x);
figure(2),imshow(y);
0 个评论
采纳的回答
Walter Roberson
2014-1-28
You have
im=bitor(qr,p2);
im=cat(3,qr,qg,qb);
which calculates im and then throws away that result and writes in a new one.
更多回答(1 个)
Shivaputra Narke
2014-1-28
编辑:Walter Roberson
2014-1-28
Use following code...
Compare code and find the changes done.
Hope this help..
%/encryption
p=imread('flowers.jpg');
q=imread('msgimage.jpg');
p1=rgb2gray(p)
s=size(q);
[r c]=size(p1);
figure(1),imshow(q),title('original');
q2=imresize(q,[r c]);
qr=q2(:,:,1);
qg=q2(:,:,2);
qb=q2(:,:,3);
l=r*c;
qr=bitand(qr,uint8(240));
p2=bitshift(p1,-3);
im=bitor(qr,p2);
im=cat(3,im,qg,qb);
%im1=imresize(im1,[s(1) s(2)]);
figure(2),imshow(p1);
figure(3),imshow(im),title('final');
%/decryption
ir=im(:,:,1);
ig=im(:,:,2);
ib=im(:,:,3);
x=bitand(ir,uint8(240));
y=bitand(ir,uint8(15));
x=cat(3,ir,ig,ib);
figure(1),imshow(x);
figure(2),imshow(y,[]);
2 个评论
Soumyaa Ghosal
2017-4-25
Can you please tell me which method of steganography is this ? Is this LSB or some other method ? Thanks in advance.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!