androidjavacv
『壹』 android studio怎麼配置javacv
1、使用AndroidStudio創建工程StudioTestJavaCV,名字可隨意
2、打開AndroidStudio工程,在Android視圖下無法看到工程目錄中的libs文件夾,因此點擊Android,將其更換Project視圖
以上環境搭建完成
『貳』 如何將javacv軟編碼改為android硬編碼
我們都知道,圖像對象可以編碼成指定圖像格式文件保存在硬碟上,需要時再對其進行解碼讀入內存。但是除了這樣還有別的辦法可以將圖像對象保存在硬碟上嗎? 熟悉Java I/O 的人也許可以想到採用對象序列化(Object serialization)試一試,很好,但是如果你研究了 BufferedImage 類的結構後就會大失所望(至少當時我是這樣)。 BufferedImage 提供一般圖像管理。BufferedImage 對象包括另外兩個對象:Raster 和 ColorModel。Raster 對象包含另外兩個對象:DataBuffer 和 SampleModel。不幸的是,他們都沒有實現序列化所必需的 Serializable 介面,所以無法直接對他們進行對象序列化。 我在學習 JAI 的時候發現了 javax.media.jai.remote 包里有一個類 SerializableRenderedImage,這個類實現了RenderedImage, Serializable 介面,可以將 RanderedImage 對象作為構造函數的參數實例化一個可以序列化的圖像對象。 查看JDK的文檔可以知道無論 Java 2D 中的 BufferedImage 還是 JAI 中的 PlanarImage 都實現了 RenderedImage 介面,也就是說所有實現自 RenderedImage 介面的對象均可作為參數包裝出一個 SerializableRenderedImage 類型對象,將其序列化。 下面是一個簡單的例子說明了這個類的使用方法: import java.io.*; import javax.media.jai.remote.*; import java.awt.image.*; public class SomeSerializableClass implements Serializable { protected transient RenderedImage image; public SomeSerializableClass(RenderedImage image) { this.image = image; } // Serialization method. private void writeObject(ObjectOutputStream out) throws IOException { out.defaultWriteObject(); out.writeObject(new SerializableRenderedImage(image, true)); } // Deserialization method. private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); image = (RenderedImage) in.readObject(); } }
『叄』 javacv要安裝opencv么
應該是無法找到依賴庫 需要把你項目里用到的Jpcap.dll文件復制到C:\Program Files\Java\jdk1.6.0_17\bin下 建議樓主試一下
『肆』 android中做直播用mediacodec和ffmpeg還有javacv哪個好
直播,如果可以的話建議用mediacodec,硬解碼,會比較省電,發熱低,開發難度可能大一些,需要數據流解協議,解封裝,解碼播放,數據傳輸什麼的,還有數據包結構,包頭內容解析等等,pps,sps,i幀,p幀,解析出時間戳,幀長度等等
ffmpeg發熱會高一點
『伍』 android opencv 開發怎麼實現不安裝 manager
本文介紹eclipse下配置javacv的開發環境,過程十分簡單,最後會舉一個實例(FacePreview)進行驗證配置是否成功。閱讀本文的前提是Android+eclipse開發環境已經配置好(當然javacv並不是專為android而寫的,普通java程序也是支持的)。
一、打開網頁:http://code.google.com/p/javacv/。點擊:Downloads,下載javacv-0.5-bin.zip及javacv-0.5-cppjars.zip,解壓到任意目錄。
二、點擊Project Home,回到原來的頁面,看到下面這段話:
Eclipse (Android 2.2 or newer):
Follow the instructions on this page: http://developer.android.com/training/basics/firstapp/
Go to File > New > Folder, select your project as parent folder, type "libs/armeabi" as Folder name, and click Finish.
Copy javacpp.jar and javacv.jar into
the newly created "libs" folder.
Extract all the *.so files from javacv-android-arm.jar, opencv-2.4.5-android-arm.jar,
and ffmpeg-1.2-android-arm.jar directly into the newly created "libs/armeabi" folder, without creating any of the subdirectories
found in the JAR files.
Navigate to Project > Properties > Java Build Path > Libraries and click "Add JARs...".
Select both javacpp.jar and javacv.jar from
the newly created "libs" folder.
三、按照二的步驟做,裡面的第一步可以不理。第二、第三步很簡單,第四步是把三個jar包里的.so文件提取出來,放到「libs/armeabi」目錄下,提取方法:把jar重命名為rar,打開即可看到一堆.so文件。現在很多壓縮軟體可以打開jar包裡面的文件,打開後直接拖過去即可。第五、第六步也很簡單,照做即可。
下面舉一個實例:FacePreview。要注意的是javacv的運行要求Android 2.2 on ARMv7 or newer versions,有些機子可能會運行不了。
一、eclipse新建一個工程,工程名:FacePreview,包名:com.googlecode.javacv.facepreview。
把javacv-bin/samples下的FacePreview.java復制到當前工程下替換原來的FacePreview.java。注意到
FacePreview.java里第25行的注釋里提到:「IMPORTANT – Make sure your
AndroidManifiest.xml file includes the
following」,要把拍照的許可權加到AndroidManifiest.xml里。
二、第110行處:File classifierFile = Loader.extractResource(getClass(),
「/com/googlecode/javacv/facepreview/haarcascade_frontalface_alt.xml」,
context.getCacheDir(), 「classifier」,
「.xml」);用到了haarcascade_frontalface_alt.xml,如果找不到這個文件就網上下一個,然後把
haarcascade_frontalface_alt.xml放到指定位置。
三、把上文中提到的jar包及.so文件加入進去。
四、運行程序,大功告成。
After that, the wrapper classes for OpenCV and FFmpeg can automatically access all of their C/C++ APIs。
『陸』 javacv要安裝opencv么
新建一個android工程,然後: 1.選中此工程,依次File > New > Folder,輸入 「libs/armeabi」作為文件名,再點擊完成; 2.將第一大步解壓OpenCV-2.4.0-android-arm得到的*.so動態鏈接庫:
『柒』 用OpenCV開發人臉識別軟體,用Java好還是用C/C++好
java的opencv頂多調用攝像頭用,圖像處理都用c++的opencv。對於opencv的開發,不管從開發效率還是執行效率,絕對是c++。java版的opencv想都不要想。
『捌』 Android程序如何調用C下寫的函數
你說的太多了,在這里很難說清楚。你說的opencv對Android的介面是javaCV吧,這個已經完全封裝了Opencv 並且提供了硬體加速,簡單處理的話,如果你不用這個有點可惜。
直接調用c的的話就是JNI不過需要在Linux環境下開發,編譯.so。
那麼java要做的就是把圖像傳給c,c處理完,在傳回來顯示。至於如何傳遞,我沒有研究過。如果控制圖像大小通過流還是可以的。如果像素高,圖片大 你就要在考慮考慮了
『玖』 如何在Android上集成ffmpeg
由於最近要做一個音頻視頻合成的東東,經過各方面的資料查找,開始鎖定javaCV,想用它搞定音視頻合成的問題。可後來用javacv出現了很多問題,發郵件給javacv的作者,也沒有得到很好的答案,後來逼於無奈只好移植ffmepg到andorid,在android上使用ffmpeg合成音視頻的問題了,ffmpeg真的很強大,無所不能。不多說了, 下面直接介紹整個過程。
http://blog.csdn.net/wangjianzhongfj/article/details/39121707