Esempio n. 1
0
int main(int argc, char* argv[])
{
    if (argc < 6) {
        std::cout << "Usage: " << argv[0] << " in out-image out-csv threshold [sort-mode]\n";
        std::cout << "  sort-mode: sort-by-color, sort-by-count\n";
        return 0;
    }

    cv::Mat Z;
    std::string f = argv[1];
    if (fs::is_directory(f)) {
        Z = loadThumbnails(f);
    } else if (fs::path(f).extension() == ".png" || fs::path(f).extension() == ".jpg") {
        Z = loadImage(f);
    } else {
        Z = loadVideo(f);
    }

    std::cout << "Clustering...\n";
    std::vector<Cluster> centers;
    if (std::string(argv[4]).find(".") == std::string::npos) {
        cluster(Z, (int)atoi(argv[4]), centers);
    } else {
        cluster(Z, (float)atof(argv[4]), centers);
    }

    std::string sort_mode = argc >= 6 ? argv[5] : "sort-by-count";
    if (sort_mode == "sort-by-color") {
        sortCentersByColor(centers);
    } else {
        sortCentersByCount(centers);
    }
    exportCenters(centers, argv[2], argv[3]);
}
void DockPixelStreamer::changeDirectory( const QString& dir )
{
    slideIndex_[currentDir_.path()] = flow_->centerIndex();

    flow_->clear();
    slideImagesToLoad_.clear();
    slideImagesLoaded_.clear();

    currentDir_ = QDir(dir);
    if (dir != rootDir_)
    {
        addRootDirToFlow();
    }
    addFilesToFlow();
    addFoldersToFlow();

    flow_->setCenterIndex( slideIndex_[currentDir_.path()] );
    loadThumbnails( slideIndex_[currentDir_.path()] );
}