我想計算一個二進制圖像中的六角形單元格的百分比,這意味着有另外6個鄰居單元格的單元格的數量。例如,用1,2,3和4標記的單元都有6個鄰居單元。如何計算每個單元格的鄰居數量?
我正在尋找一個可以在Matlab中做到的功能。我已經嘗試了不同的Matlab函數,比如regionprops和bwconncomp。但是,沒有人爲我工作。有什麼想法。
一個簡單的形象是在這裏:
我想計算一個二進制圖像中的六角形單元格的百分比,這意味着有另外6個鄰居單元格的單元格的數量。例如,用1,2,3和4標記的單元都有6個鄰居單元。如何計算每個單元格的鄰居數量?
我正在尋找一個可以在Matlab中做到的功能。我已經嘗試了不同的Matlab函數,比如regionprops和bwconncomp。但是,沒有人爲我工作。有什麼想法。
一個簡單的形象是在這裏:
嗨,你可以使用bwlabeln功能和形態功能的繼承。
下面的代碼做這項工作:
% load image and post processing
A = imread('LR0gx.png');
I = rgb2gray(A);
I = imcomplement(I);
% labelling of the image
L = bwlabeln(I);
figure; subplot 121;
imagesc(L); title('cells labeling')
% search and count the neighbours using the dilate function
label = unique(L);
for ii = label(2:end)'
I_temp = L == ii;
I_temp = bwmorph(I_temp,'dilate',2) - I_temp;
I_temp2 = L; I_temp2(~I_temp) = 0;
number_of_neighbours(ii) = size(unique(I_temp2), 1)-1;
end
L_2 = zeros(size(L));
for ii = label(2:end)'
L_2(L == ii) = number_of_neighbours(ii);
end
subplot 122;
imagesc(L_2); title('number of neighbours'); colorbar;
結果是以下之一:
PS:你必須刪除一個count
因爲細胞的分區目前在功能unique
。
Pss:需要imcomplement
,因爲bwlabeln
標籤爲白色值。
親愛的R. Bergamote 感謝您的幫助,但我認爲它不能解決問題。我需要的是找到每個單元的鄰居數量。 –
真的!我的回答與問題完全無關,請讓我看看:D –
@AlaaAlwaisy,我更新了答案,現在應該沒問題 –
親愛的安德拉斯, 其實,我試過刪除它,但我不能爲什麼? –
親愛的安德拉斯, 相信我,我做到了,但我不知道有什麼問題!!你怎麼知道有人發佈了問題或他需要幫助?我的個人資料中可以設置任何設置嗎?我是這個網站的新手。 –
Alaa我看到你已經成功刪除了你之前的問題。我在這裏刪除了我的評論(因爲它們現在已經過時了),我建議你對你的評論也一樣(如果你用鼠標懸停在你的評論上,在它的末尾會出現一個小的「x」圖標)。 –