Android OpenCV颜色分割显示在ImageView上
我到处寻找解决办法,但没有找到。我知道这是一个反复出现的问题,所以我会尽量准确 我想使用Android和OpenCV在HSV中执行颜色分割。我有一个HSV样本数组,对应于我想要分割的颜色,从中我获得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
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);