这几天很痛苦地去学习了下用 Matlab 来处理图像,其实那些算法我觉得还不算很难理解,可是 Matlab 这种反人类的语法(可能对于我来说是这样吧,毕竟熟悉了 C++ / Java 的语法一时间很难转过来)折磨了我好久。

  前些天在网上看到了一张图片:

  想 po 上朋友圈,可又觉得右下角的水印被人看着好像不是很好,于是就想能否利用刚学会的一丁点儿的 Matlab 知识来把水印去掉呢?Show you my low code:

  首先,读取图片:

>> I = imread('D:\课程文件\图像处理\image\beizi.jpg');

  然后,目测下水印在原图中的大概位置,把它提取出来:

>> t = I(:, :, :);

  imshow(t) 显示出来看看,是这样子的:

  然后分别把 t 的 rgb 3 个分量都提取出来:

>> t1 = t(:, :, );
>> figure, imshow(t1);
>> t2 = t(:, :, );
>> figure, imshow(t2);
>> t3 = t(:, :, );
>> figure, imshow(t3);

  分别是这样的:

        

  因为 t2 和 t3 比较相似,而且黑白分明,直接看下两个矩阵里的内容,发现文字部分确实和黑色部分的灰度值相差很大,所以不管三七二十一,直接暴力砍掉那些白色的部分,也就是文字:

[m,n] = size(t2)

for i = :m
  for j = :n
    if t2(i,j) >=
      t2(i,j) = ;
    end
  end
end

  对 t3 作同样的处理,然后两子图效果如下:

     

for i = :m
for j = :n
if t3(i,j) >=
t3(i,j) = ;
end
end
end

  接下来到 t1 了,因为白色文字的灰度值很接近背景颜色,所以需要很小心地找好边界值:

for i = :m
for j = :n
if t1(i,j) >=
t1(i,j) = ;
end
end
end
imshow(t1);

  效果如下:(感觉还可以~)

  然后就是把处理好的 3 个子图合并起来:

for i = :m
for j = :n
t(i,j,) = t1(i,j);
t(i,j,) = t2(i,j);
t(i,j,) = t3(i,j);
end
end
figure, imshow(t);

  合并好的图效果如下:(嘻嘻,即将成功的感觉~)

  最后,把这个经过处理的原图的一角放回到原图中:

for i = :
for j = :
I(i + , j + , :)=t(i, j, :);
end
end
figure, imshow(I);

  最终得出的图如下:

  虽然能看出淡淡的痕迹,但第一次弄这个,感觉就这样吧 o(* ̄ ▽  ̄*)o

  希望高手能指教下~~

初试 Matlab 之去除水印的更多相关文章

  1. Atitit.去除水印的方案

    Atitit.去除水印的方案 1.1. 查找水印的位置 Kegwa imgd posit zo ok le .. Auto find d zo troub ...manu easy 1.2. 还原去除 ...

  2. AnyChartStock去除水印方法

    最近在使用AnyChartStock的图表,功能很强大,但下载过来是有水印的,虽然网上也有很多破解无水印的版本,但基本都是AnyChart的,AnyChartStoc的几乎没有.所以自己尝试着去除水印 ...

  3. PS小实验-去除水印

    PS小实验-去除水印 水印是一些品牌商覆盖在图片或视频上的一个商标logo或小文本,比如大家最讨厌的百度logo,作者本人也是比较讨厌水印的,让好端端的一张图片变得美中不足. 个人觉得用photosh ...

  4. pdf 移除密码 去除水印 批量去除水印 编辑文字 批量替换文字

    1.pdf除密码: http://pan.baidu.com/share/link?shareid=308194398&uk=370045712  2.去除水印:http://wenku.ba ...

  5. python利用opencv去除水印方法

    OpenCV(Open Source Computer Vision Library)是一个跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法 在python中可以利用opencv来去除 ...

  6. winform工具1-图片去除水印

    效果图: 思路: 1.获取图片 2.处理水印 3.保存处理的图片 代码: 获取图片: private void button1_Click(object sender, EventArgs e) { ...

  7. [Python]爬虫获取知乎某个问题下所有图片并去除水印

    获取URL 进入某个知乎问题的主页下,按F12打开开发者工具后查看network面板. network面板可以查看页面向服务器请求的资源.资源的大小.加载资源花费的时间以及哪些资源加载失败等信息.还可 ...

  8. C# 处理PPT水印(二)——去除水印效果(文本水印、图片水印)

    本文将对C#处理PPT幻灯片中的水印进一步说明和介绍.在C# 处理PPT水印(一)一文中,分享了如何插入水印效果的方法,包括插入文字水印效果.插入图片作为水印效果两种情况,那对于不需要水印效果的情况, ...

  9. PS快速去除水印方法

    步骤 第一步:打开PS软件,鼠标左键单击左上角"文件"-"打开",选择一张图片 第二步:鼠标左键单击左边的工具栏"矩形选框工具" 第三步:鼠 ...

随机推荐

  1. CSS 中的内联元素、块级元素以及display的各个属性的特点

    CSS的内联元素和块级元素 块级元素<h1>-<h6>.p.dt是不可以内联块级元素的 1.block和inline这两个概念是简略的说法,完整确切的说应该是 block-le ...

  2. LNMP-Linux下Nginx+MySQL+PHP+phpMyAdmin+eAcelerator一键安装包

    LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat.Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx.MySQL.PHP.phpMyA ...

  3. MySql超新手入门

    https://www.kancloud.cn/thinkphp/mysql-tutorial/36457

  4. Centos7安装配置NFS服务和挂载

    现在有3台服务器 s1(主),s2(从), s3(从)需要实现文件实时同步,我们可以安装Nfs服务端和客户端来实现! 一.安装 NFS 服务器所需的软件包:   1 yum install -y nf ...

  5. 谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH

    谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH  PKG_CONFIG_PATH 转载自:http://blog.chinaunix.net/xmlrpc.ph ...

  6. blockdev命令和blkid命令

    blockdev命令和blkid命令 http://www.jb51.net/LINUXjishu/310389.html block相关的命令 这篇文章主要介绍了Linux blockdev命令设置 ...

  7. 简单5步说清App软件在线开发、App制作多少钱?

    开发制作一款App,所有人都会首先关心开发一款App多少钱这个问题.从网上的信息来看,花费个几十万是很正常的事情,甚至有人说要花上百万才能制作出一款App.那么App软件的开发制作到底和什么有关?怎么 ...

  8. 捕获Insert触发器失败记录

    1.背景 环境:发布服务器A Windows2008+SQL2008,分发服务器B Windows2008+SQL2008,订阅服务器C Windows2008+SQL2012发布服务器A上的用户信息 ...

  9. ECMAScript 6教程 (三) Class和Module(类和模块)

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文连接,博客地址为 http://www.cnblogs.com/jasonnode/ .该系列课程是 ...

  10. Firefox刷新页面和复选框的奇葩问题

    Firefox刷新页面后数据还在,估计很多人都碰到过. 但是有一个奇怪的地方就是复选框,如果你默认是勾选了,然后访问者取消勾选,刷新完之后,还是没有勾选,这是为什么? Firefox奇葩的地方就在于c ...