我应该将一段代码从Matlab
翻译为OpenCV4Android
。
此代码的一部分采用RGB图像并将其拆分。
当我运行Matlab应用程序时,我可以看到每个分割通道的类型为uint8,尺寸为 376x640 。在这种情况下,图像由imread
加载,并通过简单的矩阵运算进行分割:
input_im = imread('Field.png');
R = input_im(:,:,1);
G = input_im(:,:,2);
B = input_im(:,:,3);
当我运行Android应用程序时,在分割图像后(首先是RGBa,无所谓),我得到的每个频道都是CV_8UC1
类型(应该等同于uint8
,如果我说得对,但是尺寸是1128x1920(它将原始尺寸乘以3倍)。原始图片具有相同的尺寸,但类型为CV_8UC4
。该图片已预先加载到ImageView
,并已转换为Mat
:
private Bitmap mBitmap;
private Mat mImToProcess;
// ...
mBitmap = ((BitmapDrawable) mImageView.getDrawable()).getBitmap();
Utils.bitmapToMat(mBitmap, mImToProcess);
// ...
List<Mat> chans = new ArrayList<>(mImToProcess.channels());
Core.split(mImToProcess, chans);
我想现在是什么让这个与众不同? 是否可以在我的Android应用程序中使用与Matlab应用程序类似的维度。