初試 Matlab 之去除浮水印

來源:互聯網
上載者:User

標籤:

  這幾天很痛苦地去學習了下用 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

  希望高手能指教下~~

初試 Matlab 之去除浮水印

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.