[Bildsegmentierung] Bildsegmentierung basierend auf dem Fuzzy-Clustering-Algorithmus FCM [Matlab Issue 119] [Bildverarbeitung 36]

Mit der Bildung, Entwicklung und Vertiefung der Fuzzy-Mengen-Theorie übernahm RusPini die Führung, als er das Konzept der Fuzzy-Division vorschlug. Vor diesem Hintergrund haben sich die Theorie und die Methoden des Fuzzy-Clusters rasch entwickelt. Für verschiedene Anwendungen haben Menschen viele Fuzzy-Clustering-Algorithmen vorgeschlagen. Typische sind Methoden, die auf Ähnlichkeitsrelationen und Fuzzy-Beziehungen basieren, transitive Verschlussmethoden, die auf Fuzzy-Äquivalenzrelationen basieren, Maximum-Support-Tree-Methoden, die auf der Fuzzy-Graph-Theorie basieren, und Methoden, die auf der konvexen Zerlegung von basieren Datensätze, dynamische Programmierung und schwer zu erkennende Beziehungen. Keine der oben genannten Methoden kann jedoch auf die Situation eines großen Datenvolumens angewendet werden, und es ist schwierig, die Anlässe mit hohen Echtzeitanforderungen zu erfüllen, so dass die tatsächliche Anwendung nicht weit verbreitet ist.

Die Fuzzy-Cluster-Analyse kann je nach Clustering-Prozess grob in drei Kategorien unterteilt werden:

(1) Klassifizierung basierend auf Fuzzy-Beziehung: einschließlich Stammbaum-Clustering-Algorithmus (auch als systematisches Clustering bekannt), Clustering-Algorithmus basierend auf Äquivalenzbeziehung, Clustering-Algorithmus basierend auf ähnlicher Beziehung und Graphentheorie-Clustering-Algorithmus usw. Es ist eine frühe Forschungsmethode, aber da sie nicht auf die Situation großer Datenmengen angewendet werden kann, ist sie in der Praxis nicht weit verbreitet.

(2) Fuzzy-Clustering-Algorithmus basierend auf der Zielfunktion: Diese Methode reduziert die Clustering-Analyse auf ein eingeschränktes nichtlineares Programmierproblem und erhält durch Optimierung die optimale Fuzzy-Partition und Clustering des Datensatzes. Die Methode ist einfach im Design und bietet ein breites Spektrum an Problemlösungen. Sie kann auch in ein Optimierungsproblem umgewandelt und mit Hilfe der nichtlinearen Programmiertheorie der klassischen Mathematik gelöst werden. Sie ist einfach auf einem Computer zu implementieren. Mit der Anwendung und Entwicklung von Computern sind Fuzzy-Clustering-Algorithmen, die auf objektiven Funktionen basieren, zu einem neuen Forschungsschwerpunkt geworden.

(3) Fuzzy-Clustering-Algorithmus basierend auf einem neuronalen Netzwerk: Es handelt sich um einen relativ späten Algorithmus, der hauptsächlich einen kompetitiven Lernalgorithmus verwendet, um den Clustering-Prozess des Netzwerks zu steuern.

Bevor Sie den Algorithmus einführen, sollten Sie zunächst das Wissen über Fuzzy-Mengen einführen.

HCM-Clustering-Algorithmus

    首先说明隶属度函数的概念。隶属度函数是表示一个对象x 隶属于集合A 的程度的函数,通常记做μA(x),其自变量范围是所有可能属于集合A 的对象(即集合A 所在空间中的所有点),取值范围是[0,1],即0<=μA(x),μA(x)<=1。μA(x)=1 表示x 完全隶属于集合A,相当于传统集合概念上的x∈A。一个定义在空间X={x}上的隶属度函数就定义了一个模糊集合A,或者叫定义在论域X={x}上的模糊子集A’。对于有限个对象x1,x2,……,xn 模糊集合A’可以表示为:

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Flussdiagramm des FCM-Algorithmus

Der FCM-Algorithmus ist ein relativ beliebter Fuzzy-Clustering-Algorithmus. Die Gründe dafür sind folgende: Erstens ist die Fuzzy-C-Mittelwert-Funktion Jm immer noch eine natürliche Erweiterung der traditionellen harten C-Mittelwert-Funktion J1; die Mittelwert-Funktion J1 ist sehr weit verbreitet Clustering-Kriterium, und seine theoretische Forschung war ziemlich perfekt, was gute Bedingungen für die Forschung von Jm bietet; mathematisch Jm und RS Hilbert Die räumliche Struktur (orthogonale Projektion und mittlere quadratische Approximationstheorie) ist eng verwandt, daher hat sie eine tiefere mathematische Grundlage und andere Funktionen. Schließlich und vor allem hat die Zielfunktion nicht nur in vielen Bereichen sehr erfolgreiche Anwendungen erhalten. Auf der Grundlage des FCM-Algorithmus schlugen die Menschen Fuzzy-Clustering-Algorithmen vor, die auf anderen Prototypen basieren und eine große Anzahl von FCM-Typen bilden Algorithmen: wie Fuzzy-C-Linie (FCL), Fuzzy-C-Ebene (FCP) bzw. andere Clustering-Algorithmen. Erkennung von Teilmengen (oder Clustern) linearer und hyperplanarer Strukturmuster.

FCM-Algorithmus für die Farbmigration

    钱小燕等人将聚类算法应用到色彩迁移中,提出了一种基于图像模糊颜色聚类的自适应色彩迁移算法。该算法首先将源图像和目标图像分别转换到lαβ颜色空间:利用FCM 算法把源图像和目标图像划分为具有不同颜色特征的聚类,然后分析图像中的颜色特征:分别算出每个域的匹配权值,对每个目标图像的匹配权值,从源图像中选取一个最接近域作为最佳匹配域;最后根据目标图像各聚类域与源图像中的匹配域之间的关系,引入隶属度因子,两个域的处理结果分别进行加权平均,获得色彩迁移结果。使用FCM的思想对图像进行聚类域划分的思路是:设准备处理图像I的大小是S×H,即对颜色聚类颜色分析的个数是N,N = S×H,则图像I可表示成集合,I={p1 ,p2 ...,pn }。图像被分为c类,每个类的聚类中心为V={v1,v2 ...,vc },用uik表示像素pk隶属于聚类中心Vi的隶属度,定义图像的隶属度矩阵U。具体算法如下:

Schritt 1: Konvertieren Sie das Quellbild und das Zielbild von RGB in den lαβ-Raum.

Schritt 2: Bestimmen Sie die Anzahl c der Clusterdomänen des zu verarbeitenden Bildes und initialisieren Sie dann die Clusterzentren. Unter der Annahme, dass der Gewichtungsindex m = 2 ist, wird die maximale Anzahl von Iterationen der Verarbeitung auf 50 gesetzt.

Schritt 3: Wenn die Anzahl der Iterationen T kleiner als 50 ist, wird die Zugehörigkeitsmatrix gemäß den anfänglichen Clusterzentren berechnet. Wenn pk ≠ vi ist, verwenden Sie für alle vi (i = 1,2, ..., C) die folgende Formel, um die Zugehörigkeitsmatrix zu berechnen.

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

%% 程序分享 
%--------------------------------------
 
clear
close all
clc
%% %%%%%%%%%%%%%%%图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 I=imread('3096.jpg');
 
if size(I,3) == 3
   I=rgb2gray(I);
else
end
I=im2double(I);
figure;imshow(I);title('(a)原始图像')
% I=I;%不加噪声
%I=imnoise(I,'speckle',deta_2);
% I=imnoise(I,'salt & pepper',0.05); %加噪图
% I=imnoise(I,'gaussian',0,0.01); % 加高斯噪声
figure;imshow(I);title('(b)加噪图像');
imwrite(I,'2.jpg');
[m,n]=size(I);
%k 聚类数目
k=2;
% k=3;
 
I4 = I(:);  %% 将图像灰度按列排列
%% ------------------------ fcm算法------------------------
fcm_spatial_mean_label=zeros(m*n,1);
t=cputime;
tic;
[O2, U2, obj_fcn2] = fcm(I4, k);
toc;
time_fcm_spatial_mean=cputime-t;
%% 最大隶属度原则
maxU2 = max(U2);   %隶属度最大  
for j=1:k
    index = find(U2(j, :) == maxU2);  %隶属度最大对应的像素位置
    fcm_spatial_mean_label(index) = j;    
end
labels2=reshape(fcm_spatial_mean_label,[m n]);
labels2=uint16(labels2);
 
%% 显示聚类分割图
labels2(find(labels2==1))=0;
labels2(find(labels2==2))=255;
labels2(find(labels2==3))=180;
labels2(find(labels2==4))=100;
labels2=uint8(labels2);
figure;imshow(labels2,[]);title('(c)聚类分割图');
imwrite(labels2,'3.1.tiff','tiff','Resolution',300);%输出结果,保存为tif图片
 

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Hinweis: Vollständiger Code oder Schriftzug hinzufügen QQ2449341593 frühere Überprüfung
>>>>>>
[Matlab 024] [Bildverarbeitung 1] Bildkomprimierung der Matlab-Bildverarbeitungs-Lernserie
[Matlab 025] [Bildverarbeitung 2] Matlab-Bildverarbeitungs-Lernprogramm Serie der Bildsegmentierung (1)
[Matlab 026] [Bildverarbeitung 3] Matlab-Bildverarbeitungs-Tutorial-Serie zur Bildsegmentierung (2)
[Matlab 029] [Bildverarbeitung 4] Matlab-Fingerabdruckerkennung
[Matlab 030] [Bildverarbeitung 5】 Matlab-Quelle zur Erkennung von Bankkartennummern Code
[Matlab 074-Problem] [Bildverarbeitung 6] [Bildclustering] Basierend auf FCM und verbesserter FCM-Gehirn-CT-Bildclustering-Verarbeitung
[Matlab 075] [Bildverarbeitung 7] [Bildbewertung] Basierend auf CCF Algorithmische Bildqualitätsbewertung
[Matlab 076] [Bildverarbeitung 8] [Bildverbesserung] CLAHE-Algorithmus basierend auf lokaler Kontrastverbesserung-Histogramm-Verbesserung
[Matlab 077] [Bildverarbeitung 9] [Bildfusion] Bild basierend auf Frequenzpartitionsfusion
[Matlab Ausgabe 078] [Bildverarbeitung 10] [Bild Bewertung] Bewertung der Bildqualität basierend auf svm ohne Referenz
[ Bildkantenerkennung ] Matlab-Quellcode für die Ellipsenkantenerkennung basierend auf der Methode der kleinsten Quadrate [Matlab-Ausgabe 079] [Bildverarbeitung 11]
[Bildverschlüsselung] Bildverschlüsselung und -entschlüsselung basierend auf Matlab des Chaos-Systems Quellcode mit GUI [Matlab 080] [Bildverarbeitung 12]
[Bildverarbeitung] Basierend auf DWT + DCT + PBFO zur Verbesserung des Versteckens und Extrahierens von Bildwasserzeichen Matlab-Quellcode mit GUI [Matlab 081] [Bildverarbeitung 13】
[Bildregistrierung] Bildregistrierungs-Matlab-Quellcode basierend auf dem Sift-Algorithmus [Matlab 082] [Bildverarbeitung 14]
[Bildfusion] Bildfusions-Matlab-Quellcode basierend auf dem CBF-Algorithmus [Matlab 083] [Bildverarbeitung 15]
[Bildsegmentierung] Bildsegmentierung Matlab-Quellcode basierend auf Random-Walk-Algorithmus [Matlab 084] [Bildverarbeitung 16]
[Bildfilterung] Bild zweidimensionale bilaterale Gauß-Filterung [Matlab 085] [Bildverarbeitung 17]
[Bildentrauschung] Basierend auf adaptiver Morphologie Bildentrauschung [Matlab 086 Problem] [Bildverarbeitung 18]
[Bildverbesserung] DEHAZENET- und HWD-basierte Bildverbesserung unter Wasserstreuung [Matlab 087] [Bildverarbeitung 19]
[Bildverbesserung] PSO-Optimierung ACE-Bildverbesserung Matlab Quellcode [Matlab 088] [Bildverarbeitung 20]
[ Bildverbesserung] Graustufenbildverbesserung basierend auf Regionsähnlichkeitstransformationsfunktion und Libellenalgorithmus [Matlab 089] [Bildverarbeitung 21]
[Bildrekonstruktion] ASTRA-Algorithmus zur Bildrekonstruktion [Matlab 090 [Bildverarbeitung 22]
[Bildsegmentierung] Bildsegmentierung basierend auf quadtree matlab Quellcode [Matlab 091] [Bildverarbeitung 23]
[Bildsegmentierung] Extraktion der
Herzmittellinie [Matlab 092] [Bildverarbeitung 24] [Bilderkennung] Basierend auf der Erkennung und Klassifizierung von svm-Pflanzenblattkrankheiten [Matlab 093] [Bildverarbeitung 25]
[Bilderkennung] Basierend auf der GUI-Schnittstelle des handschriftlichen Nummernerkennungssystems mit Vorlagenabgleich [Matlab 094] [Bildverarbeitung 26]
[Bilderkennung] basierend auf der digitalen Verifizierungscodeerkennung von Moment mit unveränderter GUI-Schnittstelle [Matlab 095] [Bildverarbeitung 27]
[ Bilderkennung] Barcode-Erkennungssystem [Matlab 096] [Bildverarbeitung 28]
[Bilderkennung] RMB-Erkennungssystem basierend auf einem neuronalen RGB- und BP-Netzwerk mit GUI-Schnittstelle [Matlab 097] [Bildverarbeitung 29]
[Bilderkennung] Matlab-Quellcodeerkennung basierend auf einem neuronalen CNN-Faltungsnetzwerk [Matlab 098] [Bildverarbeitung 30]
[ Bildklassifizierung] Klassifizierung von Fernerkundungsbildern basierend auf einem Klassifikator für extremes Lernen [Matlab 099] [Bildverarbeitung 31]
[Bildgerade-Anpassung] Bildgerade-Anpassung basierend auf der Methode der kleinsten Quadrate und der Halbierungswinkelhalbierenden [Matlab 100】 【Bildverarbeitung 32】
【Bilddefogging】 Basierend auf Dark Channel-Bilddefogging 【Matlab 101-Problem】 Bildverarbeitung 33】
Bildtransformation】 DIBR-3D-Bildverzerrung (3D-Bildverzerrung) 【Matlab-Ausgabe 117】 【Bildverarbeitung 34]
[Bildsegmentierungsalgorithmus] verbessert FCM (FRFCM) der Bildsegmentierung basierend auf dem morphologischen Rekonstruktionsfilter und Matlab 118 [Periode] [35] der Bildverarbeitung

Ich denke du magst

Origin blog.csdn.net/TIQCmatlab/article/details/112647194
Empfohlen
Rangfolge