如何在matlab中使用边缘在图像上嵌入水印?

时间:2012-07-30 16:55:41

标签: image-processing matlab

在学校项目中,我想做以下步骤,在matlab中制作水图像

  • 从图像中提取边缘
  • 在此边缘插入标记
  • 重建图片
  • 提取标记

有人可以给我一个链接,以便知道如何做或帮助我做到这一点? 提前谢谢你

2 个答案:

答案 0 :(得分:1)

您想为图片添加水印吗?为什么不覆盖整个事情。

如果您有图像

img = imread('myimage.jpg')
wm  = imread('watermark.jpg')

您只需将水印尺寸调整为图像尺寸

即可
wm_rs = imresize(wm, [size(img,1) size(img,2)], 'lanczos2');

img_wm(wm_rs ~= 0) = wm_rs; %This sets non-black pixels to be the watermark. (You'll have to slightly modify this for color images) 

如果你想把它放在图像的边缘,你可以像这样提取它们

edges = edge(rgb2gray(img),'canny')

然后,您可以将边缘存在的像素设置为水印像素

img_wm = img;
img_wm(edges ~= 0) = wm_rs(edges~=0);

如果你想要透明度,你可以使用img和wm_rs像素值的混合来代替直接赋值。

您可能需要调整一些我说的彩色图像,但大多数应该是相同的。

答案 1 :(得分:0)

这里是一个很好的简单示例,如何使用MATLAB(在空间域中)嵌入水印:http://imageprocessingblog.com/digital-watermarking/