在我的Android应用我从画廊的图片作为位图是这样的Imgproc.drawContours(....)没有显示出来
Bitmap bitm = getMyImage("Thanks!");
,我有一个所谓的垫垫声明如下:
Mat mat = new Mat(bitm.getHeight(), bitm.getWidth(), CVType.CV_8UC3);
我试图摆脱的形象,我已经成功地得到了轮廓,然后用领域吸取回原始图像上:
Imgproc.drawContours(mat, contours, -1, new Scalar(200,200,0), 2);
displayMat(mat);
如果我这样使用它,它可以工作,但轮廓绘制在一张空白图像上,而这不是我想要的。我想让它在原始图像上绘制。如果我的代码前面的段之前使用
Utils.bitmapToMat(bitm, mat);
,显示的图像只是没有“拉”轮廓preprossed图像。为什么?
我没有使用Android opencv,但我想我已经读过他们使用8UC4图像的地方?!?所以'新Scalar(200,200,0)'也需要一个alpha值。否则,它会使用默认的alpha值,我猜可能是透明的。因此,把'Utils.bitmapToMat(bitm,mat);'放在你的代码之前,并把它改为'Scalar(200,200,0,255)'或'Scalar(200,200,0,0)',这意味着一个非透明的alpha值。 – Micka 2014-09-11 13:23:58
@Micka谢谢!这是它没有出现的原因。如果你留下你的评论作为答案,我一定会接受它:) – Olumide 2014-09-11 17:55:31