博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初试 Matlab 之去除水印
阅读量:6599 次
发布时间:2019-06-24

本文共 1435 字,大约阅读时间需要 4 分钟。

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

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

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

  首先,读取图片:

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

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

>> t = I(490:544, 440:600, 1:3);

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

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

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

  分别是这样的:

        

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

[m,n] = size(t2)for i = 1:m  for j = 1:n    if t2(i,j) >= 20      t2(i,j) = 6;    end  endend

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

     

for i = 1:m    for j = 1:n        if t3(i,j) >= 20            t3(i,j) = 6;        end    endend

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

for i = 1:m    for j = 1:n        if t1(i,j) >= 210            t1(i,j) = 200;        end    endendimshow(t1);

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

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

for i = 1:m    for j = 1:n        t(i,j,1) = t1(i,j);        t(i,j,2) = t2(i,j);        t(i,j,3) = t3(i,j);    endendfigure, imshow(t);

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

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

for i = 1:55    for j = 1:161        I(i + 489, j + 439, 1:3)=t(i, j, 1:3);    endendfigure, imshow(I);

  最终得出的图如下:

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

  希望高手能指教下~~

转载于:https://www.cnblogs.com/Newdawn/p/4957706.html

你可能感兴趣的文章
北京智控美信(长春)数据中心应聘总结
查看>>
C指针分析详解
查看>>
svs 在创建的时候 上传文件夹 bin obj 这些不要提交
查看>>
深度优先搜索-----部分和问题
查看>>
javascript 数组方法总结
查看>>
document.location.search 的作用
查看>>
mysql-用命令导出、导入表结构或数据
查看>>
不要从栈上返回一个局部变量的引用
查看>>
input点击链接另一个页面,各种操作
查看>>
TreeView
查看>>
Tinkphp
查看>>
向网页中嵌入百度地图
查看>>
EntityFrameworkCore 一对一 && 一对多 && 多对多配置
查看>>
How to temporally disable IDE tools (load manually)
查看>>
JS-复习整理
查看>>
Vue.js学习 Item4 -- 数据双向绑定
查看>>
几种排序方式的java实现(01:插入排序,冒泡排序,选择排序,快速排序)
查看>>
如何书写高质量的jQuery代码
查看>>
host-only
查看>>
linux命令行音量控制
查看>>