初试 Matlab 之去除水印
这几天很痛苦地去学习了下用 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 之去除水印的更多相关文章
- Atitit.去除水印的方案
Atitit.去除水印的方案 1.1. 查找水印的位置 Kegwa imgd posit zo ok le .. Auto find d zo troub ...manu easy 1.2. 还原去除 ...
- AnyChartStock去除水印方法
最近在使用AnyChartStock的图表,功能很强大,但下载过来是有水印的,虽然网上也有很多破解无水印的版本,但基本都是AnyChart的,AnyChartStoc的几乎没有.所以自己尝试着去除水印 ...
- PS小实验-去除水印
PS小实验-去除水印 水印是一些品牌商覆盖在图片或视频上的一个商标logo或小文本,比如大家最讨厌的百度logo,作者本人也是比较讨厌水印的,让好端端的一张图片变得美中不足. 个人觉得用photosh ...
- pdf 移除密码 去除水印 批量去除水印 编辑文字 批量替换文字
1.pdf除密码: http://pan.baidu.com/share/link?shareid=308194398&uk=370045712 2.去除水印:http://wenku.ba ...
- python利用opencv去除水印方法
OpenCV(Open Source Computer Vision Library)是一个跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法 在python中可以利用opencv来去除 ...
- winform工具1-图片去除水印
效果图: 思路: 1.获取图片 2.处理水印 3.保存处理的图片 代码: 获取图片: private void button1_Click(object sender, EventArgs e) { ...
- [Python]爬虫获取知乎某个问题下所有图片并去除水印
获取URL 进入某个知乎问题的主页下,按F12打开开发者工具后查看network面板. network面板可以查看页面向服务器请求的资源.资源的大小.加载资源花费的时间以及哪些资源加载失败等信息.还可 ...
- C# 处理PPT水印(二)——去除水印效果(文本水印、图片水印)
本文将对C#处理PPT幻灯片中的水印进一步说明和介绍.在C# 处理PPT水印(一)一文中,分享了如何插入水印效果的方法,包括插入文字水印效果.插入图片作为水印效果两种情况,那对于不需要水印效果的情况, ...
- PS快速去除水印方法
步骤 第一步:打开PS软件,鼠标左键单击左上角"文件"-"打开",选择一张图片 第二步:鼠标左键单击左边的工具栏"矩形选框工具" 第三步:鼠 ...
随机推荐
- 思维导图制作工具推荐 - ProcessOn
在使用 Teambition (以下简称Tb)的时候无意中发现了 ProcessOn,由于可以与 Tb 绑定,实现实时更新,很大程度上提升了团队协作的效率. 在以前画 原型/思维导图 等草图的时候,用 ...
- Android自动化测试工具——monkey简介及入门
记得第二家单位的安卓开发在上线前都用monkey压几个小时,确实也能发现些问题,崩溃率低了些,没测过的确实可以压一压 搜了下资料,monkey确实很简单,发现问题自己搜下是什么问题,别一发现什么就跑去 ...
- centos7 开机画面定制
安装包 yum install plymouth-plugin-script 设置开机启动画面 mkdir /usr/share/plymouth/themes/tup 创建主题目录 cp /root ...
- ionic cordova 热更新
因为项目需要,使用cordova的热更新插件,本地调试很简单,看连接https://github.com/nordnet/cordova-hot-code-push,就几步,这里不说了. 下面两个要装 ...
- AngularJS Best Practices: pretty urls
By default, AngularJS will route URLs with a hashtag. For example: http://example.com/ http://exampl ...
- jquery判断页面是否滑动到最底部
// 滚动到底部,向下的箭头消失 var $down = $('.down'); var $window = $(window); var $document = $(document); $wind ...
- 使用JavaService.exe(amd64)发布java服务(jdk x64)
最近项目中需要使用java服务,但是java服务已经写好了,就等待部署到windows服务中,遇到了种种困难------在x64服务器中部署jdk x64编译的jar时,遇到了各种纠结. 本文找到了一 ...
- Could not load file or assembly'System.Data.SQLite.dll' or one of its depedencies
安装对应的 Microsoft Visual C++ 2010 Redistributable Package (x86) If your download does not start afte ...
- n皇后2种解题思路与代码-Java与C++实现
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了n皇后问题的解题思路,并分别用java和c++实现了过程,最后,对于算法改进 ...
- java-mvc
定义 一种开发模式 Model-View-Controller Model 模型层 实体类.DAO(模型层实现数据库访问和业务逻辑) Controller 控制层 Servler.Filter(控制层 ...