• 初试 Matlab 之去除水印


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

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

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

      首先,读取图片:

    >> I = imread('D:课程文件图像处理imageeizi.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
      end
    end

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

         

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

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

    for i = 1:m
        for j = 1:n
            if t1(i,j) >= 210
                t1(i,j) = 200;
            end
        end
    end
    imshow(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);
        end
    end
    figure, imshow(t);

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

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

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

      最终得出的图如下:

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

      希望高手能指教下~~

  • 相关阅读:
    让HTML5来为你定位(转)
    Web开发者应知的URL编码知识(转)
    Web开发:URL编码与解码(转)
    用virtualenv建立多个Python独立开发环境(转)
    使用Ajax方式POST JSON数据包(转)
    俞敏洪:我和马云就差了8个字...(转)
    HTTP返回码中301与302的区别(转)
    Postgresql 正则表达式(转)
    【双十一狂欢,一触即发!】安全圈的学习节|绝对省钱攻略
    安全运维中基线检查的自动化之ansible工具巧用
  • 原文地址:https://www.cnblogs.com/Newdawn/p/4957706.html
Copyright © 2020-2023  润新知