さて、OpenCV が提供するサンプルの K-means アルゴリズム プログラムは非常に紛らわしいと言わざるを得ません。午後全体を過ごした後でも、全体像はわかりませんでした。これらは私が尋ねたいいくつかの質問です:
1) K 平均関数は入力としてそのような行列のみを受け取るため、特定の画像を単一列の行列に変換するにはどうすればよいですか? CvMat 関数を使用する必要があることはわかっていますが、正確な方法がわかりません。
2) シード値として所定の強度を使用して、色の強度に応じてクラスター化することは可能ですか?
大事なことを言い忘れましたが、誰かが K-means を少し詳しく説明するリンクを提供できれば幸いです。私はすでにウィローガレージとアイシャックの説明を受けましたが、まだ疑問が残っています. 前もって感謝します !!
これはまさに私がやろうとしていることです:これが提供された画像であるとします
私のコードの出力は、次のようになります。
ご覧のとおり、2 番目の画像では陰影による影響が取り除かれ、明確な色のレイヤーを持つ画像が得られます。
これを行うために、次の方法を適用します。まず、画像の対応する LAB 値に基づいてシード カラーを選択します。次に、シード値を取得した後、K-means クラスタリングを使用して、類似した色を明確なカラー レイヤーにクラスター化しようとします。(上の図に示すように)。