0
以下代碼讀取中心的像素並返回了三個我認爲是H = data[0], S data[1], V = data[2]
的值,如何獲得HSV值的上限和下限?OpenCV:找到HSV顏色的上下界
注意:我正在閱讀的彩色像素是綠色。
E /數據:H:90.0 S:113.0五:144.0
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, srcMat, 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/
double[] data = srcMat.get(centerX, centerY);
Log.e("data", String.valueOf("H:"+data[0]+" S:"+data[1]+" V:"+data[2]));
Log.e("dlength", String.valueOf(data.length));
Mat matHSV = new Mat(0,0,CvType.CV_64FC3);
另外通過添加以下三行代碼,我會收到一個錯誤說位圖== NULL,所以即時通訊並不確定像素閱讀是否有效。
matHSV.put(0,0,data);
Utils.matToBitmap(matHSV, bb);
imgDisplay.setImageBitmap(bb);
查找顏色的上限和下限與查找平均顏色不同。 –
看看[this](https://stackoverflow.com/a/28542584/6950238)的答案。 –