摘要:圖片中包含了巨大的信息量,而單靠人眼來獲取的信息少之又少。Matlab軟件提供了一系列矩陣運算和可視化功能,可以提高圖像分析能力,在其圖像處理工具箱只需要通過調(diào)用就可以實現(xiàn)圖像的變換,免除了自己編程所花費的時間,并可以直觀容易地從處理后的圖像中提取想要的信息。
關(guān)鍵詞:數(shù)字圖像處理;Matlab;圖像增強;圖像分割;邊緣檢測;幾何變換 文獻標識碼:A
中圖分類號:TP391 文章編號:1009-2374(2016)09-0031-03 DOI:10.13535/j.cnki.11-4406/n.2016.09.014
1 概述
隨著科學(xué)技術(shù)的迅猛發(fā)展和人們生活節(jié)奏的加快,無論是生活娛樂,還是學(xué)習(xí)工作,都要面對大量圖片信息。在面對大量文字介紹和圖片介紹時,人們更傾向于去看圖片,但人們從中獲取的信息卻相當少,如何高效直觀地提取所要的信息需要借助輔助工具。
2 Matlab在圖像處理方面的基本介紹
Matlab是一種以矩陣為基本單元的可視化程序設(shè)計語言,功能強大、結(jié)構(gòu)簡單、開放性強。其中的圖像處理工具箱包含15類,如圖像顯示函數(shù),圖像文件輸入、輸出函數(shù),圖像幾何操作函數(shù)等。通過上述的不同的圖像處理的函數(shù)的調(diào)用,來實現(xiàn)對圖像的不同需求。
3 圖像增強
3.1 圖像增強的目的
為了改善圖像的視覺效果,或者使圖像更適合于人或機器進行分析處理,則使用圖像增強來達到此目的。
3.2 圖像增強的各個方法的對比
在空間域中的圖像增強操作可分為區(qū)處理和點處理。
3.2.1 點處理。點處理又稱為灰度變換,可分為直接灰度變換法和直方圖修正法。這兩個方法的目的都是使圖像的對比度增強,但直接灰度變換法是通過壓縮不感興趣的區(qū)域,拉伸感興趣的區(qū)域來達到圖像增強的目的,而直方圖修正法是通過修正直方圖的形狀來達到圖像增強的目的。并且要注意灰度變換曲線一般都是單輸入單輸出的(單調(diào)的),這樣才能使得變換前后從黑到白的順序不變。如果是多輸入單輸出則會導(dǎo)致顏色出現(xiàn)混疊,而直方圖有助于確定圖像分割的閾值但它無法反映某一灰度級像素所在的位置,即丟失了位置信息。其中直方圖修正法中分為均衡化和規(guī)定化。其中用直方圖均衡化處理后的灰度級可能比處理前的少了,原因是原直方圖中相對出現(xiàn)次數(shù)較少的灰度級被歸并到一個新的灰度級上,這種現(xiàn)象稱為簡并。雖然灰度級少了,但圖像反差增大,即達到了圖像增強的目的。
3.2.2 區(qū)處理。區(qū)處理可分為圖像平滑和圖像銳化。從字面上即可看出這兩個區(qū)處理是相對的。具體的實現(xiàn)方法是與模板卷積,模板卷積可實現(xiàn)圖像平滑、圖像銳化、邊緣檢測等功能。其中圖像平滑的目的是消除噪聲和模糊圖像。有兩種方法:鄰域平均(均值濾波)法和中值濾波法。圖像銳化目的與圖像平滑相反,即使模糊的圖像便清晰,可以用微分模板做卷積[一階差分算子(roberts算子、prewitt算子、sobel算子等)或二階差分算子(拉普拉斯算子)]。一階微分一般產(chǎn)生更粗的邊緣,二階微分則產(chǎn)生更細的邊緣并對細線、孤立點等小細節(jié)有更敏感,同樣可以達到增強圖像邊緣的還有非銳化濾波和高增濾波。主要原理是原圖像減去平滑后的圖像或者是原圖像加上圖像的高通圖像都可以達到增強邊緣的效果。
3.3 圖像增強在Matlab中的實例及對比
3.3.1 以下是對圖像的直方圖均衡化的Matlab程序:
I=imread('F:\相冊\大二\mwy1.jpg');
>> I=rgb2gray(I);
>> figure(1),subplot(221),imshow(I);%原圖
>> m=16;
>> H=histeq(I,m);
>> subplot(222);imshow(H,[]);%直方圖均衡化后的圖像
>> subplot(223);
>> hist(double(I),m);%原圖的直方圖
>> subplot(224);
>> hist(double(H),m);%直方圖均衡化后
圖像為圖1:
圖1
3.3.2 以下是在椒鹽噪聲或高斯噪聲情況下的對圖像平滑的兩種方法對比的Matlab程序:
II=imnoise(I,'salt&pepper');%加入椒鹽噪聲
>> figure(2),subplot(241);imshow(I);%原圖
>> subplot(242),imshow(II);%加入椒鹽噪聲之后的圖像
>> H1=[1,2,1;2,4,2;1,2,1]/16;
>> J=imfilter(II,H1);%對加入椒鹽噪聲的圖像進行均值濾波
>> subplot(243),imshow(J);
>> J1=medfilt2(II);%對加入椒鹽噪聲的圖像進行中值濾波
>> subplot(244),imshow(J1);
>> subplot(245),imshow(I);%再次顯示原圖
>> I2=imnoise(I,'gaussian');%加入高斯噪聲
>> subplot(246),imshow(I2);%顯示加入高斯噪聲后的圖像
>> J2=imfilter(I2,H1);%對加入高斯噪聲的圖像進行均值濾波
>> subplot(247),imshow(J2);%顯示加入高斯噪聲后均值濾波的圖像
>> J3=medfilt2(I2);%對加入高斯噪聲的圖像進行中值濾波
>> subplot(248),imshow(J3);%顯示加入高斯噪聲后中值濾波的圖像
圖像為圖2:
圖2
從圖中可以很直觀地看出均值濾波可以很好地消除椒鹽噪聲,中值濾波可以很好地消除高斯噪聲。
4 圖像分割與邊緣檢測
4.1 圖像分割與邊緣檢測的目的
在工業(yè)生產(chǎn)和醫(yī)學(xué)分析等領(lǐng)域,為了將感興趣的圖像提取出來需要將這些圖像與背景分割開,因為對圖像區(qū)域的提取各有不同,故沒有通用的分割方法,需要根據(jù)具體的問題來選取分割方法。
4.2 圖像分割的方法
圖像分割的方法有灰度閾值法、邊緣檢測與邊緣連接、區(qū)域生長、區(qū)域分裂與各并、分水嶺分割算等。
灰度閾值法的關(guān)鍵是如何確定合適閾值來使得圖像分割的目的達到最優(yōu),其中的最優(yōu)閾值法就是計算出一個閾值,使得總的分類誤差概率最小。
區(qū)域生長是先選取一個種子像素,然后將與種子像素性質(zhì)相似的像素集合起來形成一個區(qū)域,但要有先驗知識才能達到想要的目的。而區(qū)域分裂與合并則不需要先驗知識,它先利用一致性準則將圖像分割成若干個區(qū)域,然后利用相似性準則將滿足相似性的合并在一起。
邊緣檢測可以提取出圖像的輪廓,即求梯度值,大于閾值的設(shè)為1,小于閾值的設(shè)為0,便得到了二值圖像。但通過梯度算子和LOG算子卷積所得到的邊緣并不連續(xù),雖然LOG算子比梯度算子提取的細邊緣更多,但仍存在連續(xù)性不足的問題。而canny邊緣檢測能夠?qū)⒉贿B續(xù)的狀態(tài)連續(xù)起來。它考慮了梯度方向的問題,邊緣細且連續(xù)有灰度。
4.3 圖像分割與邊緣檢測在matlab程序與圖片對比
>> figure(4),subplot(131),imshow(I);%原圖
>> Q4=edge(I,log);
>> subplot(132),imshow(Q4);%用log算子卷積得到的邊緣圖像
>> Q5=edge(I,canny);
>> subplot(133),imshow(Q5);%用canny算子卷積得到的邊緣圖像
圖像為圖3:
圖3
5 二值形態(tài)學(xué)
二值形態(tài)學(xué)的運算有腐蝕和膨脹、開運算(先腐蝕再膨脹)和閉運算(先膨脹再腐蝕)。
在圖像處理中,筆者發(fā)現(xiàn)利用腐蝕運算所達到的效果與用美圖秀秀等美圖軟件中的人眼放大功能類似。
Matlab程序如下:
>> BW1=imread('F:\相冊\大二\mwy1.jpg');
>> BW1=rgb2gray(BW1);
>> SE=strel(‘a(chǎn)rbitrary,eye(5));
>> BW2=imerode(BW1,SE);
>> figure(5),subplot(121),imshow(BW1);
>> subplot(122),imshow(BW2);
所示圖像如圖4:
圖4
圖5
形態(tài)學(xué)在matlab中的實例與對比??梢岳瞄_運算和閉運算的組合運用來去除噪聲,先用開運算對圖像進行處理,再進行閉運算后可去除大部分的噪聲。
Matlab程序如下:
>> BW1=imread('F:\相冊\大二\mwy1.jpg');
>> BW1=rgb2gray(BW1);
>> BW2=imnoise(BW1,salt&pepper);
>> SE=strel(‘a(chǎn)rbitrary,eye(5));%設(shè)置任意的一個結(jié)構(gòu)元素
>> BW3=imerode(BW2,SE);%腐蝕運算
>> BW4=imdilate(BW3,SE);%膨脹運算
>> BW5=imdilate(BW4,SE);
>> BW6=imerode(BW5,SE);
>> figure(6),subplot(231),imshow(BW1);%顯示原圖像
>> subplot(232),imshow(BW2);%顯示加入噪聲后的圖像
>> subplot(233),imshow(BW3);%顯示腐蝕后的圖像
>> subplot(234),imshow(BW4);%顯示再膨脹后的圖像
>> subplot(235),imshow(BW5);%顯示再腐蝕后的圖像
>> subplot(236),imshow(BW6);%顯示再膨脹后的圖像
圖像如圖5所示。
6 結(jié)語
通過利用Matlab來學(xué)習(xí)圖像處理,直觀形象地說明處理圖像的方法,在以后的學(xué)習(xí)中將會對圖像處理有更深入的了解。
參考文獻
[1] 何東健.數(shù)字圖像處理(第2版)[M].西安:西安電子科技大學(xué)出版社,2008.
作者簡介:毛瑋英(1995-),女,河南洛陽人,河南大學(xué)學(xué)生,研究方向:通信工程。
(責(zé)任編輯:黃銀芳)