楊濤+董潔+李金松+劉樹駿
摘要:隨著網絡的日漸發(fā)達,越來越多的風景圖片在網上出現,對于那些喜歡收集風景圖片的人來說這是一件好事。但是大多數的風景圖片都被打上了水印,這就使得這些收集風景圖片的人在對圖片進行挑選時自動的過濾掉這些帶水印的圖片,而帶水印的圖片恰恰是風景好的圖片。本文通過matlab對圖片中的水印進行去除,可以使讀者了解matlab在去水印處理中的應用。
關鍵字:matlab;灰度直方圖;水印
0 引言
在生活中人們喜歡從網上下載圖片進行ps或者用于珍藏的目的,更多的是瀏覽風景圖片,但是網上很多風景很好的圖片都被加上了水印,這就使得人們在收集圖片的時候,將這些帶有水印的圖片舍棄,所以去除圖片中的水印成為了這些風景圖片收集者的頭號問題,本文通過matlab對圖片水印部分的顏色分量rgb分別進行修改,最后達到去除水印的目的。
1 圖片的處理過程
首先將圖片利用imread函數讀取到matlab中。然后利用程序對帶有水印的部分進行選取,將圖片帶有水印的部分提取出來,?將水印部分的rgb,3個分量都提取出來,然后分別將三個顏色分量圖片的灰度直方圖利用imhist函數表示出來[1],從圖中我們可以知道每一個分量中各個點的灰度值和多少,除了水印灰部分灰度值為255以外,縱坐標最大的值就是我們要將白色的水印部分替換的值[2]。然后根據灰度直方圖的顯示對水印部分的灰度值進行修改。將修改后的三個分量融合并替換掉原來的水印部分得到,最后將原圖的水印部分用修改后的部分替換,這樣就達到了去除水印的目的。如圖所示左側為修改前右側為修改后。
圖
2分量的處理方法
根據rgb三個分量的灰度直方圖,我們可以知道圖片中那一個顏色值數量最多,然后將白色部分即水印的部分用其替換,就完成了分量中的水印去除?;叶戎狈綀D是一個圖表,它上面是用來顯示灰度或索引圖像亮度的分布情況,從灰度直方圖中可以了解一幅圖像的灰度級內容[3]。它表示圖象中具有每種灰度級的象素的個數,反映圖象中每種灰度出現的頻率?;叶戎狈綀D的橫坐標是灰度級,縱坐標是該灰度級出現的頻率,是圖象的最基本的統計特征?;叶燃墢?到250,白色為255,黑色為0。
3 Matlab程序及注解
%提取帶有水印區(qū)域
I=imread('1.jpg');
imshow(I);
k = waitforbuttonpress; % 等待鼠標按下
point1 = get(gca,'CurrentPoint'); % 鼠標按下了
finalRect = rbbox;
point2 = get(gca,'CurrentPoint'); % 鼠標松開了
point1 = point1(1,1:2); % 提取出兩個點
point2 = point2(1,1:2);
p1 = min(floor(point1),floor(point2)); % 計算位置
p2 = max(floor(point1),floor(point2));
offset = abs(floor(point1)-floor(point2)); % offset(1)表示寬,offset(2)表示高
x = [p1(1) p1(1)+offset(1) p1(1)+offset(1) p1(1) p1(1)];
y = [p1(2) p1(2) p1(2)+offset(2) p1(2)+offset(2) p1(2)];
hold on
%提取水印區(qū)域的rgb分量
t =I(31:70,498:596,1:3);%水印區(qū)域
t1 = t(:,:,1);%抽取原圖像r的R,G,B的其中一維得到灰度矩陣
t2 = t(:, :, 2);
t3 = t(:, :, 3);
figure, imshow(t3);
hist_im1=imhist(t1); %計算直方圖
figure,bar(hist_im);%畫直方圖
%分量中的水印部分進行灰度值轉換
[m,n] = size(t1)
for i = 1:m
for j = 1:n
if t1(i,j) >= 50
t1(i,j) = 6;
end
end
end
%轉換完成后進行融合
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
for i = 1:38
for j = 1:94
I(i + 32, j + 499, 1:3)=t(i, j, 1:3);
end
end
4總結
本篇文章設計了一種MATLAB的去水印方法,可以從所需要的風景圖片上去除不必要的水印。但不足之處是處理后的圖片水印部分有一定得色差,可以根據進一步的處理將色差去除。
參考文獻
[1]Rafael C.Gonzalez等,數字圖像處理的MATLAB實現[M],清華大學出版社,2013.
[2]Rafael C.Gonzalez等,數字圖像處理的MATLAB實現[M],清華大學出版社,2013.
[3] 馬曉路,等.Matlab圖像處理從入門到精通,中國鐵道出版社.2013.
作者簡介:單位:山東科技大學機械電子工程學院,研究方向:數字圖象處理。endprint