在一个学校项目中,我想执行以下步骤以在 matlab 中制作水印图像
- 从图像中提取边缘
- 在此边缘插入标记
- 重建图像
- 提取标记
有人可以给我一个链接,让我知道如何做或帮助我做到这一点吗?先感谢您
在一个学校项目中,我想执行以下步骤以在 matlab 中制作水印图像
有人可以给我一个链接,让我知道如何做或帮助我做到这一点吗?先感谢您
您想为图像添加水印吗?为什么不只是覆盖整个事情。
如果你有图片
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 像素值,而不是直接分配。
您可能需要调整我对彩色图像所说的一些内容,但大多数应该是相同的。
这里是一个很好的简单示例,如何使用 MATLAB(在空间域中)嵌入水印:http: //imageprocessingblog.com/digital-watermarking/
请参见下面的示例(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)