原创 FFmpeg - 打造一款萬能的音樂播放器

從 c/c++ 基礎、jni 基礎、c/c++ 進階、數據結構和算法、linux 內核、CMake 語法、Shell 腳本繞了一大圈之後,總算是勉強可以來寫 FFmpeg 了,以上這些基礎大家可以看下之前的文章: 《Androi

原创 從 Linux 內核的角度來看 Binder 驅動

關於進程間通信我們是再熟悉不過了,有時面試也經常被問到你瞭解 IPC 嗎?我們一般都會答 AIDL ,Binder 驅動,共享內存?如果要我們再說詳細點呢?或者說說共享內存的具體實現?這裏推薦一篇羅昇陽的博客 《Android進程間通

原创 音視頻技術學習 - 啓動篇

其實老早就想寫一些關於音視頻學習的文章了,但由於各方面的原因遲遲都沒有開始。一個方面是因爲筆者寫文章都是成系統的,音視頻需要大家有一定的 c/c++ 基礎;還有一個方面是因爲之前經驗不足,這一塊涉及到的細節也比較多。我自己學習時看過大

原创 NDK 開發實戰 - 實時人臉檢測和識別

關於人臉檢測和識別,應用的範圍是非常廣的,其實之前的《NDK開發前奏 - 實現支付寶人臉識別功能》 也有提到,只是那時並未具體的去分析算法和實現原理,這裏筆者打算一步一步來分析和實現人臉識別,首先我們得要明確人臉檢測和人臉識別是兩個不

原创 NDK 開發實戰 - 微信公衆號二維碼檢測

關於二維碼識別,我們一般都是用的 Zxing 或者 Zbar ,但它們的識別率其實並不是很高,有些情況下是失靈的,比如下面這兩張圖: 使用開源庫 Zxing 掃描以上兩張二維碼,有一張死活不識別。使用微信是可以的,大家可以用支付

原创 NDK 開發實戰 - 實現相機美顏功能

在 《圖形圖像處理 - 實現圖片的美容效果》 一文中提到了圖片的美容,採用雙邊濾波算法來實現,具體的算法流程和實現思路,大家可以在上篇文章中瞭解,這篇文章就在不再反覆囉嗦了。這裏我們再次來看下處理效果: 上面的效果看似好像不錯,其

原创 NDK 開發實戰 - 封裝 java 層 sdk 模型

關於 Ndk 開發,網上的資料非常少,這方面的書籍也不多。因爲其涉及的知識非常廣,那麼我們可能會問到底要學到什麼程度?到底應該怎麼學?這期我給大家來做一個簡單回答,首先單純站在 Android 系統的角度來說,我們可以細分爲 Java

原创 圖形圖像處理 - 手寫 QQ 說說圖片處理效果

OpenCv 的基礎學習目前先告一段落了,後面我們要開始手寫一些常用的效果,且都是基於 Android 平臺的。希望我們有一定的 C++ 和 JNI 基礎,如果我們對這塊知識有所欠缺,大家不妨看看這個:Android進階之旅(JNI基

原创 Android智能識別 - 銀行卡區域裁剪(原理篇)

在 Android智能識別 - 銀行卡區域裁剪 一文中我們用瞭如下幾行代碼,獲取發現銀行卡的輪廓: // 梯度增強 , x 軸和 y 軸 Mat grad_x, grad_y; Scharr(blur, gra

原创 圖形圖像處理 - 實現圖片的美容效果

我們在用美顏相機或者直播時,相信都離不開一個效果那就是 美容 。這次我們就來分析一種常用濾波(雙邊濾波),剛好就可以實現一些美容效果。**雙邊濾波(Bilateral Filter)**是非線性濾波中的一種。這是一種結合圖像的空間鄰近

原创 圖形圖像處理 - 我們所不知道的 Bitmap

Bitmap 是怎麼開闢內存的?內存是怎麼複用和銷燬的?本地資源圖片應該怎麼去做適配? 打開我們自己的 APP 發現佔用內存較大的一般都是本地資源圖片,我們該如何去優化這些內存? 大家以後如果有涉及直播這一塊的業務,直播間會有各種活

原创 來到大城市的 2018

年初,自己終於鼓起勇氣來了深圳,這一年經歷過太多的不適應和焦慮,還好都熬過來了。最值得開心的是,找到了那個真心相愛的人,因此打算用文字記錄下來。文章很多是寫給自己的,如今多年過去了,我依舊會翻越以前的文章。只是後來發現能夠在一起探討技

原创 圖形圖像處理 - Android 濾鏡效果

年初來深圳正式開始從事音視頻開發,爲啥我想從事音視頻開發呢?有一個簡單的理由是我想建立起自己的技術壁壘,別人不能做的你能做,別人解決不了的你能解決。我們工作多年甚至於做了幾十個項目,如果我們不能從項目中去學習新的東西,那技術就只能停滯

原创 數據結構算法 - 棧和隊列

棧和隊列在數據結構和算法學習中,是比較容易理解的。但有時候感覺自己掌握了棧和隊列,可是在寫的時候遇到不同的情況,就不會處理了,因此自己還是想再總結回顧一下。 棧: 是一端受限,一端允許進行操作的線性表。即:先放的後取,後放的先取。就是

原创 數據結構算法 - ConcurrentHashMap 源碼解析

五個線程同時往 HashMap 中 put 數據會發生什麼? ConcurrentHashMap 是怎麼保證線程安全的? 在分析 HashMap 源碼時還遺留這兩個問題,這次我們站在 Java 多線程內存模型和 synchroni