0

在一个学校项目中,我想执行以下步骤以在 matlab 中制作水印图像

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

有人可以给我一个链接,让我知道如何做或帮助我做到这一点吗?先感谢您

4

3 回答 3

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) 

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

边缘=边缘(rgb2gray(img),'canny')

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

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

如果您想要透明度,您可以混合使用 img 和 wm_rs 像素值,而不是直接分配。

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

于 2012-09-03T19:58:31.997 回答
0

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

于 2013-07-16T20:21:30.157 回答
0

请参见下面的示例(R2017b 或更高版本):

% your params
img = imread('printedtext.png');
Transparency = 0.6;
fontColor = [1,1,1]; % RGB,range [0,1]
position = [700,200];

%% add  watermark
mask = zeros(size(img),'like',img);
outimg = insertText(mask,position,'china', ...
    'BoxOpacity',0,...
    'FontSize',200,...
    'TextColor', 'white');
bwMask = imbinarize(rgb2gray(outimg));
finalImg = labeloverlay(img,bwMask,...
    'Transparency',Transparency,...
    'Colormap',fontColor);
imshow(finalImg)
于 2021-09-13T03:24:36.773 回答