我正在尋找一種方式來覆蓋Android中的openCV(2.4.3)圖像。基本上,我正在做一些圖像過濾,我希望用戶能夠看到乾淨的過濾視頻流,但在上角看到過濾器正在做的預覽:添加OpenCV for Android的圖像覆蓋
我試過設置ROI中的濾波後的圖像上,並且在JNI代碼的使用AddWeighted這樣
在活動:
liveFrame.copyTo(mRgba); //going to be used as the unfiltered stream
//image filtering happends here...
Rect roi = new Rect(0, 0, liveFrame.cols()/4, liveFrame.rows()/4);
mProcMat = new Mat(liveFrame, roi);
AddMats(mRgba.getNativeObjAddr(),mProcMat.getNativeObjAddr()); //will add the two, assign the result to mRgba
AddMats(本機方法):
Mat* image1=(Mat*)mat1;
Mat* image2 = (Mat*)mat2;
float alpha = 0.5;
float beta = 0.5;
addWeighted((InputArray)*image1, alpha, (InputArray)*image2, beta, 0.0, (OutputArray)*image1);
但是這不會工作,因爲圖像的大小必須相同,所以我似乎不能想辦法讓這個工作。我可以在iOS中輕鬆完成此操作,因爲您只需將該幀應用於直播視頻頂部的新視圖即可。對於Android,據我所知,每個相機輸入流只能有1個表面視圖。所以這就是爲什麼我在opencv中這樣做的道路,但我會考慮在這一點上的任何解決方案
你是說覆蓋圖像與* background *圖像相同嗎? – karlphillip