我正在进行水印处理,最近我尝试开发出here找到的用于盲色水印的方法。对于嵌入水印,每次都是好的我得到了很好的结果但是在提取部分我不知道为什么我有黑色水印图像并且它看起来不像原始的!这是我用于提取的代码:
function extracted_mark=extract_dyn_U(rgb_wateramrked,ix,iy);
% rgb_wateramrked=imread('Watermarked_rgbImage.jpg'); %%% read original image
img=rgb2ycbcr(rgb_wateramrked); %%%convert to ycbcr color space
imgy=img(:,:,1);
imgcb=img(:,:,2);
imgcr=img(:,:,3);
[ca1,ch1,cv1,cd1]=dwt2(imgy,'haar'); %%% Apply dwt 2level on ca
[ca2,ch2,cv2,cd2]=dwt2(ca1,'haar');
[m n]=size(ca2);
blocksize=m/32
%********************Extraction**********************
watermark1=zeros(32,32); % define a zero matrix with the original watermak size
for k=1:32
for j=1:32
L=zeros(4,4);
L=ca2(ix:ix+blocksize-1,iy:iy+blocksize-1);
[U,S,V]=svd(L);
if abs(U(2,1))>= abs(U(3,1))
watermark1(k,j)=1;
else
watermark1(k,j)=0;
end
end
end
imshow(watermark1);
extracted_mark=watermark1;
end
end
它只是没有给我正确的提取水印:(在这项工作中我尝试从一开始就使用二进制图像,但实际上我需要将颜色水印从RGB转换为十进制再转换为二进制,所以我可以使用它。我得到的问题是当我有一个提取的水印如何从二进制重新转换为十进制然后RGB !!提前谢谢你
这是原始二进制水印(左)和提取后的结果(右)。我期望将提取的水印作为原始水印。