0
私のコードから3つ以上の値が得られているようですが、3つの値、H、S、Vがあるとしますか?私は何を間違えたのですか?OpenCV Java、HSVの値を読み取る
コード:
if (getIntent().hasExtra("byteArray")) {
bitmap = BitmapFactory.decodeByteArray(getIntent().getByteArrayExtra("byteArray"), 0, getIntent().getByteArrayExtra("byteArray").length);
int width= bitmap.getWidth();
int height=bitmap.getHeight();
int centerX=width/2;
int centerY=height/2;
srcMat = new Mat();
Utils.bitmapToMat(bitmap, srcMat);
//Imgproc.cvtColor(srcMat, matHSV, Imgproc.COLOR_BGR2HSV);
srcMat.convertTo(srcMat, CvType.CV_64FC3); //http://answers.opencv.org/question/14961/using-get-and-put-to-access-pixel-values-in-java/
int size = (int) (srcMat.total() * srcMat.channels());
Mat matHSV = new Mat();
Utils.bitmapToMat(bitmap, matHSV);
double[] data = new double[size];
srcMat.get(centerX, centerY, data);
for (int i = 0; i < size; i++){
data[i] = (data[i]/2); // no more casting required.
Log.e("HSV Values:", String.valueOf(data[i]));
}
}
が出力:
私は技術的に唯一の3つの値、Hを取得すると仮定してるにもかかわらず、Log.eを使用して印刷値の多くを得ます、 S & V.