/ / jak wykonać segmentację obrazu za pomocą wbudowanej funkcji fcm w programie Matlab? - matlab, segmentacja obrazu

jak zrobić segmentację obrazu za pomocą wbudowanej funkcji fcm w programie Matlab? - matlab, segmentacja obrazu

Jestem nowy w matlab. Właściwie muszę zrobić segmentację naczyń siatkówki. Do segmentacji wykorzystałem klasteryzację, ale wynik nie jest satysfakcjonujący. Teraz chcę wypróbować niewyraźne c oznacza technikę skupiania. Jednak nie jestem w stanie dowiedzieć się, jak korzystać z wbudowanej funkcji Matlaba w tym celu. Proszę, poprowadź mnie o tym. Przejrzałem następującą stronę, ale nie jestem w stanie zrozumieć, jak zastosować to wszystko do mojego wizerunku.

https://cn.mathworks.com/help/fuzzy/fcm.html Dzięki

Odpowiedzi:

1 dla odpowiedzi № 1

Minimalny przykład roboczy:

% some sample rgb image
MyImage = imread("autumn.tif");
% display it
figure; imshow(MyImage)
% size of the image
sz = size(MyImage);
% reshape the image to column format (each color band into one column). I guess you
%also did this for the k-means. If not that"s why you did get poor results.
ImageInColumnFormat = reshape(MyImage,[],sz(3));
% number of clusters you want
NumberOfClusters = 4;
% U shows how likely each pixel belongs to each cluster.
% double() is only necessary because the sample image is uint8 and fcm has trouble with that format. You may not have to do that.
[~,U] = fcm(double(ImageInColumnFormat),NumberOfClusters);
% Get for each pixel the most likely cluster
[~,Labels] = max(U,[],1);
% reshape it back into the image format
LabelsInImageFormat = reshape(Labels,sz(1),sz(2));
% show result
figure; imagesc(LabelsInImageFormat)