아래 코드에서 오류가 발생합니다. "행렬 치수가 일치해야합니다"코드 줄 (Shw = Sh + a * Sw;)에서 발생합니다. 사용하고있는 표지 이미지는 회색조 이미지입니다 , tiff 형식은 워터 마크와 동일합니다. 어떤 문제가 내 문제 일 수 있니? 감사합니다특이 값 분해 MATLAB 코드 오류
filename='107_3.tif';
coverImage = imread(filename);
Mc=size(coverImage,1);
Nc=size(coverImage,2);
a=10;
watermark = imread('dmg1.tif');
watermark=im2bw(watermark,0.05);
Mn=size(watermark,1);
Nn=size(watermark,2);
[LL,LH,HL,HH] = dwt2(coverImage,'haar');
%[LL1,LH1,HL1,HH1] = dwt2(HH,'haar');
Ih=idwt2([],[],[],HH,'haar');
[Uh,Sh,Vh]=svd(Ih);
[Uw,Sw,Vw]=svd(double(watermark));
Shw=Sh+a*Sw;**%%%%%ERROR OCCURRING HERE%%%%%**
VhT=transpose(Vh);
Ihw=Uh*Shw*VhT;
[LL2,LH2,HL2,HH2]=dwt2(Ihw,'haar');
watermarked_image=idwt2(LL,LH,LH,HH,'haar');
figure;
imshow(watermarked_image,[]);
title('Watermarked Image');
자세한 설명을 주셔서 감사합니다. 예, 워터 마크 이미지는 표지 이미지보다 작습니다. 더 작은 워터 마크 이미지를 숨기려면 코드를 수정할 수있는 방법에 대한 아이디어가 있습니까? 감사합니다. – Hitmanpaddy
원본 이미지에 추가하려면 0으로 워터 마크를 덧씌우기만하면됩니다. "큰 행렬에 행렬 추가"문제는이 페이지가 도움이됩니다. http://www.mathworks.com/matlabcentral/answers/77743-put-a-small-matrix-in-a-bigger- 하나 – chiliNUT
답장을 보내 주셔서 감사합니다. 나는 그것을 줄 것이다! – Hitmanpaddy