How to run this code?

조회 수: 12 (최근 30일)
Afeza Ajirah
Afeza Ajirah 2017년 5월 12일
댓글: Afeza Ajirah 2017년 5월 12일
Hi, i have problem on running this code due to some error. The only output is the displaying of 'original image'. Hopefully, you guys can help me fix it. Thank you so much.
error: Error in Wprocess (line 18)
H1=rgb2gray(I2); %convert it into gray scale image
_______________________________________________________________________________
x=.01;
t=cputime;
I1=imread('lena.jpg');%read image
% I1=imread('mand.jpg');%read image
H=rgb2gray(I1); %convert it into gray scale image
J=imresize(H,[512 512]);%resize image into 512x512 image
J= double(J);
[M,N]=size(J);
figure,imshow(uint8 (J));title('Original image')
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters('haar');
[ca,ch,cv,cd] = dwt2(J,Lo_D,Hi_D);
[ca1,ch1,cv1,cd1] = dwt2(ch,Lo_D,Hi_D);
[U,S,V] = svd(ch1);
[m,n]=size(S);
% Copy the original Singular value
Sw=S;
I2=imread('cameraman.jpg');%read Watermark image
H1=rgb2gray(I2); %convert it into gray scale image
J1=imresize(H1,[128 128]);%resize image
[a,b]=size(ch1);
W1= double(J1);
W1=imresize(W1,[a b]);% resize the 1 watermark image
[p,q]=size(W1);
% Watermark insertion
S=S+(x*W1);
[U_w,S_w,V_w]=svd(S);
[cs1]=[U*S_w*V'];
wing = idwt2(ca1,cs1,cv1,cd1,Lo_R,Hi_R);
wing1 = idwt2(ca,wing,cv,cd,Lo_R,Hi_R);
t1=cputime;
figure,imshow(uint8(wing1)),title('Watermarked Image')

채택된 답변

KSSV
KSSV 2017년 5월 12일
Your cameraman.jpg image is already a gray image, you are trying to convert it to gray using rgb2gray, that's why error. Try this:
x=.01;
t=cputime;
I1=imread('lena.jpg');%read image
% I1=imread('mand.jpg');%read image
H=rgb2gray(I1); %convert it into gray scale image
J=imresize(H,[512 512]);%resize image into 512x512 image
J= double(J);
[M,N]=size(J);
figure,imshow(uint8 (J));title('Original image')
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters('haar');
[ca,ch,cv,cd] = dwt2(J,Lo_D,Hi_D);
[ca1,ch1,cv1,cd1] = dwt2(ch,Lo_D,Hi_D);
[U,S,V] = svd(ch1);
[m,n]=size(S);
% Copy the original Singular value
Sw=S;
I2=imread('cameraman.jpg');%read Watermark image
if size(I2,3)==3
H1=rgb2gray(I2); %convert it into gray scale image
else
H1 = I2 ;
end
J1=imresize(H1,[128 128]);%resize image
[a,b]=size(ch1);
W1= double(J1);
W1=imresize(W1,[a b]);% resize the 1 watermark image
[p,q]=size(W1);
% Watermark insertion
S=S+(x*W1);
[U_w,S_w,V_w]=svd(S);
[cs1]=[U*S_w*V'];
wing = idwt2(ca1,cs1,cv1,cd1,Lo_R,Hi_R);
wing1 = idwt2(ca,wing,cv,cd,Lo_R,Hi_R);
t1=cputime;
figure,imshow(uint8(wing1)),title('Watermarked Image')
  댓글 수: 1
Afeza Ajirah
Afeza Ajirah 2017년 5월 12일
Sir!! You are the bestt, thank you so much for helping me out! May God bless you thank you sir

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by