int main (int argc, const char* argv[]) { char inputFileName[64], outputFileName[64]; int nClusters; RgbImage srcImage; Clusters clusters; if (argc < 4) { printf("Error: Oops! Too few parameters!\n"); printf("Usage: %s <INPUT_RGB_FILE> <N_CLUSTERS> <OUTPUT_RGB_FILE>\n", argv[0]); return -1; } strcpy(inputFileName, argv[1]); nClusters = atoi(argv[2]); strcpy(outputFileName, argv[3]); RgbImage srcImage; initRgbImage(&srcImage); if (loadRgbImage(inputFileName, &srcImage, 256) == 0) { printf("Error! Oops: Cannot load the input image: %s!\n", inputFileName); return -1; } initClusters(&clusters, nClusters, 1); segmentImage(&srcImage, &clusters, 1); saveRgbImage(&srcImage, outputFileName, 255); freeRgbImage(&srcImage); freeClusters(&clusters); return 0; }
Clusterizer(Vunit& unit, const Scale& scale) : m_unit(unit) , m_scale(scale) , m_blocks(sortBlocks(unit)) { initClusters(); clusterize(); sortClusters(); splitHotColdClusters(); FTRACE(1, "{}", toString()); }
OfflineKMeans::OfflineKMeans(const Samples<float>& data, const int k): samples(data), featureNum(data.getFeatureNum()), sampleNum(data.getSampleNum()), clusterNum(k) { initClusters(); #ifdef OKM_DBG print(); while(reCluster() == true) { print(); } #else while(reCluster() == true); #endif }