質問: new cv.Mat(); //重心(x,y)(CV_64FC1) ``` とコメントにありますが、いずれもデータ・タイプを設定していないところに問題があるのか?。そもそも設定の仕方もわからないですが。 --- 結果的に、こちらのページで紹介されているようなステップにつなげる予定です。 こちらはこちらでpythonさっぱりでやろうとしてることはなんとなくわかりつつも、コードが解析できませんが、それは混沌とさせてしまうため、ここでは割愛いたします
回答: 推測で書きます。あと、参考にされているソースは多分c++ですよ。 ``` int nLab = cv::connectedComponentsWithStats(src, LabelImg, stats, centroids); // ラベリング結果の描画色を決定 std::vector colors(nLab); colors[0] = cv::Vec3b(0, 0, 0); for (int i = 1; i < nLab; ++i) { colors[i] = cv::Vec3b((rand() & 255), (rand() & 255), (rand() & 255)); } ``` nLabにラベリングした結果の個数が入る cv::Vec3b(0, 0, 0)はRGB指定で黒 colors[i]にランダムで適当に色を指定していく(ラベリング数分設定) OpenCV.js TESTv2ならchromeで動いたので動かしてみました。 ``` // ラベリング処理 let nLab =cv.connectedComponentsWithStats(gray,label, stats, centroids, 8, cv.CV_32S) console.log(nLab); ``` 1の画像使って nLab > 8 となりましたので、多分あっている。 ``` // ラベリング処理 let nLab =cv.connectedComponentsWithStats(gray,label, stats, centroids, 8, cv.CV_32S) console.log(nLab); console.log(gray); console.log(label); console.log(stats); console.log(centroids); ``` ...grayとかの値を見たけどよく分かりません。今日はねます。