0

私はOpencvが初めてです。私がやろうとしているのは、単一のデジタル カメラを使用して液面を測定することです。たくさん検索した後、以下のリンクにあるアルゴリズムと手順を含む研究論文を1つ入手しました。

http://personnel.sju.edu.tw /改善師資研究成果/98年度/著作/22.pdf

しかし、このアルゴリズムには、キャプチャした画像にクロミナンス フィルタリングを適用する必要があるステップがあります。Opncv には、そのような機能が組み込まれていません。クロミナンス フィルタリングを実装するにはどうすればよいですか。これを行う方法はありますか。助けてください、ありがとう。

4

1 に答える 1

0

提供されたリンクにアクセスできませんでしたが、色(彩度)に基づいて画像をセグメント化することをお勧めします。これを行うには、最初にBGR画像(RGBですが、赤と青のチャネルが入れ替わっています。これはOpenCVの自然な順序です)をクロミナンスベースの空間に変換する必要があります。これは、またはcv::cvtColor()などの引数を持つ関数を使用して実行できます。CV_BGR2YUVCV_BGR2YCrCb

ここで変換関数の完全なドキュメントを参照してください。

その後、画像のチャンネルを次のように分割できますcv::split()

cv::Mat yuvImage;
std::vector<cv::Mat> yuvChannels;
cv::split(yuvImage, yuvChannels);

次に、関心のあるチャネルを含む結果のベクトルの画像を処理します。

于 2012-05-13T13:04:49.120 に答える