91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

分水嶺算法MATLAB編程代碼解析

發布時間:2020-08-03 10:49:27 來源:網絡 閱讀:4132 作者:gz7seven 欄目:開發技術


close all;


%%

%Step 1: 彩***像->灰度圖像

rgb = imread('pears.png');

I = rgb2gray(rgb);

figure;subplot(121)

imshow(I)

%Step 2: 利用梯度實現圖像的分割

%使用sobel算子進行邊緣檢測,

text(732,501,'Image courtesy of Corel','FontSize',7,'HorizontalAlignment','right')

hy = fspecial('sobel');

hx = hy';

Iy = imfilter(double(I), hy, 'replicate');%實現線性空間濾波函數,一種采用濾波處理的影像增強方法。其理論基礎是空間卷積和空間相關。目的是改善影像質量,包括去除高頻噪聲與干擾,及影像邊緣增強、線性增強以及去模糊等。

Ix = imfilter(double(I), hx, 'replicate');

gradmag = sqrt(Ix.^2 + Iy.^2);%求模

subplot(122), imshow(gradmag,[]), title('gradmag')

%直接用分水嶺

%L=watershed(gradmag);

%Lrgb=label2rgb(L);

%figure;imshow(Lrgb),

%title('Lrgb')

%No. 如果沒有額外的預處理,如下面的標記計算,使用分水嶺變換直接結果往往是“過度分割。” 

% 以下是標記前景和背景物體

%各種程序可以在這里應用到找到前景標記,它必須連接內的每個前景對象的像素的斑點。在這個例子中,你將使用名為“開放由重建”及以上的圖像“閉合由重建”為“干凈”的形態學技術。這些操作將創建一個可以使用imregionalmax位于每個對象內部平最大值。

%Step 3:形態學開操作

se = strel('disk', 20);%圓形結構元素

Io = imopen(I, se);%形態學開操作

figure;subplot(121)

imshow(Io), title('Io')%顯示執行后的圖

%Step 4:腐蝕與重建

Ie = imerode(I, se);%對圖像進行腐蝕

Iobr = imreconstruct(Ie, I);%對圖像進行重建

subplot(122);imshow(Iobr), %顯示重建后的圖像

title('Iobr')

%Step 5:形態學關操作

Ioc = imclose(Io, se);%形態學關操作

figure;subplot(121)

imshow(Ioc), 

title('Ioc')

%Step 6:圖像膨脹與求反

Iobrd = imdilate(Iobr, se);%對圖像進行膨脹

Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr));

Iobrcbr = imcomplement(Iobrcbr);%對圖像求反

subplot(122);imshow(Iobrcbr), 

title('Iobrcbr')

%%Step 7:獲得局部最大值

fgm = imregionalmax(Iobrcbr);%獲得局部最大值

figure;imshow(fgm), 

title('fgm')

%Step 8:在原圖上顯示極大值區域

I2 = I;

I2(fgm) = 255;%局部極大值處像素值設為255

figure;imshow(I2), 

title('fgm superimposed on original p_w_picpath')%在原圖上顯示極大值區域

se2 = strel(ones(5,5));%構建元素

fgm2 = imclose(fgm, se2);%關操作

fgm3 = imerode(fgm2, se2);%腐蝕

fgm4 = bwareaopen(fgm3, 20);%開操作

%Step 9:顯示修改后的極大區域

I3 = I;

I3(fgm4) = 255;%前景設置為255

figure;subplot(121),

imshow(I3)%顯示修改后的極大區域

title('fgm4 superimposed on original p_w_picpath')

%現在標記背景, 在清理后的圖像,Iobrcbr,暗像素屬于背景,所以你可以從一個閾值操作。

%Step 10:轉化為二值圖像

bw = im2bw(Iobrcbr, graythresh(Iobrcbr));

subplot(122);imshow(bw),

title('bw')

%背景像素是黑色的,但理想地,我們不希望的背景標記是太靠近我們目標對象的邊緣。我們通過'骨骼化'進行細分,對二值圖像的距離進行分水嶺變換,然后尋找分水嶺的界線。

%Step 11:

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

hp_w_picpath = imshow(Lrgb);%在原圖上顯示偽彩***像

set(hp_w_picpath, 'AlphaData', 0.3);

title('Lrgb superimposed transparently on original p_w_picpath')


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九寨沟县| 方山县| 孟村| 沾益县| 罗源县| 伊金霍洛旗| 江北区| 尉犁县| 陇西县| 丽江市| 监利县| 顺昌县| 广灵县| 错那县| 吴堡县| 南溪县| 贵州省| 陆川县| 梁平县| 凉城县| 隆安县| 阳曲县| 水富县| 卓尼县| 报价| 山阴县| 昌宁县| 抚宁县| 南宁市| 洛南县| 布尔津县| 元江| 贡觉县| 富民县| 开封市| 江永县| 江阴市| 夏津县| 林甸县| 泊头市| 比如县|