在我的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