私はcv :: ximgproc :: SuperpixelSLIC opencv C++を使ってイメージのセグメントを生成しています。私は各セグメントのラベルを一意にしたい。ここに私のコードです。ラベル0を2つのセグメントに与えられていることを私が観察しlabel.txtファイルでSuperpixelSLICでセグメントの一意のラベルを見つける方法
Mat segmentImage() {
int num_iterations = 4;
int prior = 2;
bool double_step = false;
int num_levels = 10;
int num_histogram_bins = 5;
int width, height;
width = h1.size().width;
height = h1.size().height;
seeds = createSuperpixelSLIC(h1);
Mat mask;
seeds->iterate(num_iterations);
Mat labels;
seeds->getLabels(labels);
for (int i = 0; i < labels.rows; i++) {
for (int j = 0; j < labels.cols; j++) {
if (labels.at<int>(i, j) == 0)
cout << i << " " << j << " " << labels.at<int>(i, j) << endl;
}
}
ofstream myfile;
myfile.open("label.txt");
myfile << labels;
myfile.close();
seeds->getLabelContourMask(mask, false);
h1.setTo(Scalar(0, 0, 255), mask);
imshow("result", h1);
imwrite("result.png", h1);
return labels;
}
(すなわちセグメントは、ピクセル(0,0)と画素(692442)が含まれる。これらの二つのセグメントはかなり遠く離れている。
です
ありがとう 'David。 Btw私はすでにSLICアルゴリズムのこのタイプを削除するためにDFSを使用して私自身の接続コンポーネントアルゴリズムを書き留めている – rajatV