Я должен реализовать Алгоритм кластеризации BSAS для обработки изображений. (Базовая последовательная алгоритмическая схема).
Я нашел для него псевдокод и попробовал какую-то собственную реализацию, вот что у меня есть:
У меня проблемы с пониманием части этого кода, пожалуйста, скажите мне, что я делаю неправильно ….
struct pointInfo {
POINT p;
bool isLabeled;
};
struct cluster{
int label;
vector<POINT> points;
};
int nrOfClusters = 0;
int nrPoints;
int maxClusters;
float treshold=2;//assign this to a value
struct cluster clusters[1000];
struct pointInfo points[1000];
//save all the black points
for (int i = 0; i < dwHeight; i++)
for (int j = 0; j < dwWidth; j++){
if(lpSrc[i*w+j]==0){
points[nrPoints].p.x=i;
points[nrPoints].p.y=j;
points[nrPoints].isLabeled=false;
nrPoints++;
}
}
//MBSAS
nrOfClusters = 1;
clusters[nrOfClusters].label = nrOfClusters;
clusters[nrOfClusters].points.push_back(points[0].p);
points[0].isLabeled=true;
for(int i=1;i<nrPoints;i++){
//find Ck:d(xi,Ck) = min1<j<m d(xi,Cj)
int distance;//=...
if(distance>treshold && nrOfClusters<maxClusters){
nrOfClusters++;
clusters[nrOfClusters].label=nrOfClusters;
clusters[nrOfClusters].points.push_back(points[i].p);
}
}
//Pattern Classification
for(int i=0;i<nrPoints;i++){
if(points[i].isLabeled==false){
//find Ck:d(xi,Ck) = min1<j<m d(xi,Cj)
}
}
Задача ещё не решена.
Других решений пока нет …