【发布时间】:2017-03-30 09:00:49
【问题描述】:
我正在开发一个应该在实时视频中检测人脸并将人脸区域转换为灰度的安卓程序。我成功地在检测到的面部区域周围创建了一个边框,并使用下面显示的功能,我设法创建了一个子垫,在主垫的左上角显示脸部。我的计划是将这个 submat 转换为灰度,然后将它放在实际的脸上,除非有人有更有效的方法?
submat 的代码如下所示。当我添加该行时:
Imgproc.cvtColor(mRgba2,mRgba2,Imgproc.COLOR_RGB2GRAY);
没有错误,但未显示左上角的拉伸面。我想这是因为 mRgba2 现在是不同的类型,所以我尝试添加
Imgproc.cvtColor(mRgba2,mRgba2,Imgproc.COLOR_RGB2GRAY);
Imgproc.cvtColor(mRgba2,mRgba2,Imgproc.COLOR_GRAY2RGB);
将 mRgba2 转换回 RGB,但这也不起作用。
public void processFrame(Mat face) {
Mat mRgba2 = face.clone();
Imgproc.resize(face, mRgba2, new Size (400, 200));
Mat submat = mRgba.submat(0, 200, 0, 400);
mRgba2.copyTo(submat);
}
【问题讨论】:
-
请向您发布错误消息。