2012年12月24日15:51:14 第一次修改
2011-09-10晚上,开始准备些成人高考数学的试题,上网找了半天,发现都是有水印的,于是心头火起,决定想办法把水印干掉。凭着上学期上过的一点数字图像处理,倒腾了两个小时,实现了去水印。
原始图像截图如下,将此截图命名为r.jpg
从上图可见有红色的图案与黑色的“中国教育在线”字样的水印。
一、 相关知识简介
需要处理的图像是RGB图像,为M*N*3。灰度图像为M*N。没有颜色分量,若有8位二进制数表示,则从最暗(黑)到最亮(白)一共可以分为256级(0~255)。
二、 解决方案描述
从RGB图像中抽取一个彩色分量来,则可以得到一个灰度图像。然后,将该图像中满足一定条件的灰度值全部变成白色即可。如灰度>100的地方全部变成白色,因为最终只要得到黑字白底的图像,所以这么做是可取的。
三、 主要步骤与代码描述
3.1 输入图像
使用imread()函数读入一幅带水印的图像,得到描述这个图像的灰度矩阵。
>> r=imread('r.jpg')
得到图像矩阵。
3.2 获取图像维度
用size()函数测量该图像的尺寸,这个尺寸在后面的代码中将会用到。
>> size(r)
结果如下图所示
从上图可见该矩阵有203行,935列,3维(R,G,B三种颜色分量