<address id="xl399"></address>

          <address id="xl399"><address id="xl399"><listing id="xl399"></listing></address></address><address id="xl399"></address>

          <address id="xl399"><form id="xl399"><th id="xl399"></th></form></address>

          <noframes id="xl399"><form id="xl399"></form>
          <address id="xl399"></address>

               您現在的位置: 南方財富網 >> 股票知識 >> 股票技術分析 >> 正文
            南方財富搜索

            股票應用標記的分水嶺算法

            2010-6-21 22:37:44   來源:本站原創   佚名
                

            如果圖像中的目標物體是連在一起的,則分割起來會更困難,分水嶺算法經常用于處理這類問題,通常會取得比較好的效果。分水嶺分割算法把圖像看成一副“地形圖”,其中亮度比較強的地區像素值較大,而比較暗的地區像素比較小,通過尋找“匯水盆地”和“分水嶺界限”,對圖像進行分割。
            步驟:
            1.讀取圖像
            2.求取圖像的邊界,在此基礎上可直接應用分水嶺分割算法,但效果不佳;
            3.對圖像的前景和背景進行標記,其中每個對象內部的前景像素都是相連的,背景里面的每個像素值都不屬于任何目標物體;
            4.計算分割函數,應用分水嶺分割算法的實現

            注:直接用分水嶺分割算法效果并不好,如果在圖像中對前景和背景進行標注區別,再應用分水嶺算法會取得較好的分割效果。
            例 步驟:
            1.讀取圖像并求取圖像的邊界。
            rgb = imread('pears.png');%讀取原圖像
            I = rgb2gray(rgb);%轉化為灰度圖像
            figure; subplot(121)%顯示灰度圖像
            imshow(I)
            text(732,501,'Image courtesy of Corel',...
                 'FontSize',7,'HorizontalAlignment','right')
            hy = fspecial('sobel');%sobel算子
            hx = hy';
            Iy = imfilter(double(I), hy, 'replicate');%濾波求y方向邊緣
            Ix = imfilter(double(I), hx, 'replicate');%濾波求x方向邊緣
            gradmag = sqrt(Ix.^2 + Iy.^2);%求摸
            subplot(122); imshow(gradmag,[]), %顯示梯度
            title('Gradient magnitude (gradmag)')
            2. 直接使用梯度模值進行分水嶺算法:(往往會存在過的分割的情況,效果不好)
            L = watershed(gradmag);%直接應用分水嶺算法
            Lrgb = label2rgb(L);%轉化為彩色圖像
            figure; imshow(Lrgb), %顯示分割后的圖像
            title('Watershed transform of gradient magnitude (Lrgb)')
            3.分別對前景和背景進行標記:本例中使用形態學重建技術對前景對象進行標記,首先使用開操作,開操作之后可以去掉一些很小的目標。
            se = strel('disk', 20);%圓形結構元素
            Io = imopen(I, se);%形態學開操作
            figure; subplot(121)
            imshow(Io), %顯示執行開操作后的圖像
            title('Opening (Io)')
            Ie = imerode(I, se);%對圖像進行腐蝕
            Iobr = imreconstruct(Ie, I);%形態學重建
            subplot(122); imshow(Iobr), %顯示重建后的圖像
            title('Opening-by-reconstruction (Iobr)')
            Ioc = imclose(Io, se);%形態學關操作
            figure; subplot(121)
            imshow(Ioc), %顯示關操作后的圖像
            title('Opening-closing (Ioc)')
            Iobrd = imdilate(Iobr, se);%對圖像進行膨脹
            Iobrcbr = imreconstruct(imcomplement(Iobrd), ...
                imcomplement(Iobr));%形態學重建
            Iobrcbr = imcomplement(Iobrcbr);%圖像求反
            subplot(122); imshow(Iobrcbr), %顯示重建求反后的圖像
            title('Opening-closing by reconstruction (Iobrcbr)')
            fgm = imregionalmax(Iobrcbr);%局部極大值
            figure; imshow(fgm), %顯示重建后局部極大值圖像
            title('Regional maxima of opening-closing by reconstruction (fgm)')
            I2 = I;
            I2(fgm) = 255;%局部極大值處像素值設為255
            figure; imshow(I2), %在原圖上顯示極大值區域
            title('Regional maxima superimposed on original image (I2)')
            se2 = strel(ones(5,5));%結構元素
            fgm2 = imclose(fgm, se2);%關操作
            fgm3 = imerode(fgm2, se2);%腐蝕
            fgm4 = bwareaopen(fgm3, 20);%開操作
            I3 = I;
            I3(fgm4) = 255;%前景處設置為255
            figure; subplot(121)
            imshow(I3)%顯示修改后的極大值區域
            title('Modified regional maxima')
            bw = im2bw(Iobrcbr, graythresh(Iobrcbr));%轉化為二值圖像
            subplot(122); imshow(bw), %顯示二值圖像
            title('Thresholded opening-closing by reconstruction')
            4. 進行分水嶺變換并顯示:
            D = bwdist(bw);%計算距離
            DL = watershed(D);%分水嶺變換
            bgm = DL == 0;%求取分割邊界
            figure; imshow(bgm), %顯示分割后的邊界
            title('Watershed ridge lines (bgm)')
            gradmag2 = imimposemin(gradmag, bgm | fgm4);%置最小值
            L = watershed(gradmag2);%分水嶺變換
            I4 = I;
            I4(imdilate(L == 0, ones(3, 3)) | bgm | fgm4) = 255;%前景及邊界處置255
            figure; subplot(121)
            imshow(I4)%突出前景及邊界
            title('Markers and object boundaries')
            Lrgb = label2rgb(L, 'jet', 'w', 'shuffle');%轉化為偽彩色圖像
            subplot(122); imshow(Lrgb)%顯示偽彩色圖像
            title('Colored watershed label matrix')
            figure; imshow(I),
            hold on
            himage = imshow(Lrgb);%在原圖上顯示偽彩色圖像
            set(himage, 'AlphaData', 0.3);
            title('Lrgb superimposed transparently on original image')

            (責任編輯:張元緣)
                南方財富網聲明:股市資訊來源于合作媒體及機構,屬作者個人觀點,僅供投資者參考,并不構成投資建議。投資者據此操作,風險自擔。
            商務進行時
            每日必讀
            學院24小時排行
            證券導讀
            熱圖推薦

            關于南方財富網版權聲明誠聘英才廣告服務網站地圖友情鏈接
            特此聲明:廣告商的言論與行為均與南方財富網無關
            www.www.mmokapan.cn
            南方財富網 © 版權所有 閩ICP備09035581號
            日韩免费高清视频网站