RGBから最大値を検出したい。どうすればそれを検出できますか? のRGB値でもっとも出現している色を表示したいとします。たとえば、イメージではREDカラーの出現頻度が最も高いので、赤色で、値はパーセンテージで表示されます。私は以下のように行と画像のCOLSを取得することにより、それを試してみましたAndroidでOpenCVを使用してCameraFrameからRGBの値を検出する
:
public Mat onCameraFrame(CvCameraViewFrame cvf) {
mRgba = cvf.rgba();
int rows = mRgba.rows();
int cols = mRgba.cols();
// int ch = mRgba.channels();
double R=0,G=0,B=0;
for (int i=0; i<rows; i++)
{
for (int j=0; j<cols; j++)
{
double[] data = mRgba.get(i, j); //Stores element in an array
R = data[0];
G= data[1];
B = data[2];
}
}
Imgproc.putText(mRgba,"R:"+R + "G:"+G +"B:"+B,new Point(10,52),Core.FONT_HERSHEY_COMPLEX,.7,new Scalar(5,255,255), 2,8,false);
return mRgba;
}
が、それは多くの時間を取っていると私はonCameraFrame
のコードを実装しているので、画面が遅れています。では、この方法でどのように高速に検出でき、どの方法が最適ですか?
ありがとうございました。
代わりにHSV色空間を使用する色に名前を付ける場合 – Micka
はい色の名前とその割合が必要です。あなたはこの質問の私に答えることができますか?あなたに巨大な要求。ありがとう –