Error in Image Embedding....
2 次查看(过去 30 天)
显示 更早的评论
Hello i am trying to run following code...
i=imread('lena.tif');
s=double(i);
j=imread('watermark.bmp');
w=double(j);
[m,n]=size(s);
[g,h]=size(w);
x=dec2bin(s,8); % decimal to binary transformation
y=double(x);
y=y-48;
plane=cell(1,8);
for r=1:8
plane{r}=y(:,r);
end
for r=1:8
planes{r}=reshape(plane{r},m,n);
end
but i am getting error as follows: ??? Operands to the and && operators must be convertible to logical scalar values.
Error in ==> dec2bin at 31 if any(d < 0) any(~isfinite(d))
Error in ==> Un2 at 13 x=dec2bin(s,8); % decimal to binary transformation
my image size is 512*512 ans watermark size is 64*64.. any one would like to suggest me how can i debug it...thnax and regards....
采纳的回答
Walter Roberson
2011-3-6
dec2bin() is not documented as accepting anything other than a scalar.
In practice, dec2bin() accepts a vector, but it does not accept an array of 2 or more dimensions. Thus:
dec2bin(s(:),8)
0 个评论
更多回答(2 个)
amitesh kumar
2011-3-6
1 个评论
Walter Roberson
2011-3-6
Using w(m,n) = 0 could result in "Attempt to grow array along ambiguous dimension" if w (your watermark image) was 3 dimensional, such as would be the case if it is an RGB image. You need to test for that case and figure out what you want to do if it happens.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!