您的位置:首页 > 编程语言 > MATLAB

<数字图像处理基础与实践(matlab版)>第二章习题 给图片加水印

2018-03-30 22:16 1286 查看
        这个学期我们老师开了一门课,对就是下面这本书,如果有也学这本书的同学可以和我一起交流做作业,大概因为这本书新出的,网上都没有答案,老师要交作业所以每次作业都得自己写,关于我们为什么要学这本书,我想大概因为这本书是我们老师编的吧。。。。。。。



    这篇文章是第二章节的习题

   该题是给了两张图片



“Happy.jpg”



“Mark.bmp”

要求将该水印mark.bmp打到原始图像Happy.jpg上面,最终效果如图



我看了一些专业网站上面加水印,写的很长,包括了傅里叶变换,做这道题的时候我们还没学傅里叶变换,老师只要求用简单的图像代数运算即可,用图像的线性组合函数 imadd和imlincomb即可,有的同学选择了imadd函数来做,我用的式imlincomb

源代码如下

x=imread('Happy.jpg');
y=imread('Mark.bmp');
x1=x(210:302,61:192);
%选取happy图片中要打印的区域
y=im2uint8(y);
%将水印图片更改为happy图片格式
z=imlincomb(0.3,y,1,x1,'uint8');
%将happy图片和水印图片线性组合
x(210:302,61:192)=z;
%将打水印的区域替换到原图片的区域
imshow(x);

函数imlincomb中的参数是可以调整的,我原来写的是1:1的比例发现水印太过生硬,组中调整为0.3:1,最终效果如图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MATLAB图像处理