Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OpenCV颜色分割显示在ImageView上_Android_C++_Opencv_Colors - Fatal编程技术网

Android OpenCV颜色分割显示在ImageView上

Android OpenCV颜色分割显示在ImageView上,android,c++,opencv,colors,Android,C++,Opencv,Colors,我到处寻找解决办法,但没有找到。我知道这是一个反复出现的问题,所以我会尽量准确 我想使用Android和OpenCV在HSV中执行颜色分割。我有一个HSV样本数组,对应于我想要分割的颜色,从中我获得mean和std,以获得一系列值,如: lowerBoundH = new Scalar(meanSamples[0]-stdSamples[0]); lowerBoundS = new Scalar(meanSamples[1]-stdSamples[1]); upperBoundH = new S

我到处寻找解决办法,但没有找到。我知道这是一个反复出现的问题,所以我会尽量准确

我想使用Android和OpenCV在HSV中执行颜色分割。我有一个HSV样本数组,对应于我想要分割的颜色,从中我获得
mean
std
,以获得一系列值,如:

lowerBoundH = new Scalar(meanSamples[0]-stdSamples[0]);
lowerBoundS = new Scalar(meanSamples[1]-stdSamples[1]);
upperBoundH = new Scalar(meanSamples[0]+stdSamples[0]);
upperBoundS = new Scalar(meanSamples[1]+stdSamples[1]);
一旦获得H、S和V的这些范围,我将执行以下操作(我仅使用通道H&S):

但是当我显示结果图像时,我得到一个完全黑色的图像。我知道这是错误的,因为相机正对着我要分割的彩色对象


我做错了什么?

多么愚蠢的错误。我是从空的
tmp
Mat创建位图的

相反,我需要使用
result
Mat:

Bitmap bmp = null;
try {
    bmp = Bitmap.createBitmap(result.cols(), result.rows(), Bitmap.Config.ARGB_8888);
    Utils.matToBitmap(result, bmp);
}catch (CvException e){Log.d("Exception",e.getMessage());}
qrImage.setImageBitmap(bmp);
Bitmap bmp = null;
Mat tmp = new Mat(result.height(),result.width(), CvType.CV_8UC1, new Scalar(4));
try {
    bmp = Bitmap.createBitmap(tmp.cols(), tmp.rows(), Bitmap.Config.ARGB_8888);
    Utils.matToBitmap(tmp, bmp);
}catch (CvException e){Log.d("Exception",e.getMessage());}
qrImage.setImageBitmap(bmp);
Bitmap bmp = null;
try {
    bmp = Bitmap.createBitmap(result.cols(), result.rows(), Bitmap.Config.ARGB_8888);
    Utils.matToBitmap(result, bmp);
}catch (CvException e){Log.d("Exception",e.getMessage());}
qrImage.setImageBitmap(bmp);