關於後副攝像頭模組的方向問題

2021-08-06 04:41:07 字數 1428 閱讀 6110

關於後副攝像頭模組的方向問題

最初的方案

硬體與驅動

先來說說硬體上的設計,雖說新加了個攝像頭本例中為sp2509模組,其安裝在後攝像頭旁邊,作為後副攝使用,但是硬體設計上卻是與前攝像頭共用isp,走前攝像頭的所有流程。本例中,對於三個攝像頭的安裝角度定義如下:

sensororientation_t const&

getsensororientation()

; return inst;

}

驅動在使用mtk的方案點亮main2攝像頭,通過getcamerainfo給上層傳遞facing,orientation,通過getnumofcamera給上層提供cameraid,其main2攝像頭對應的cameraid=2。

這裡,在hal層中通過如下,控制main2的facing,orientation值。

if(deviceid==2)

else

等方向均需按照如下處理:

int rotation = 0;

if (morientation != orientationeventlistener.orientation_unknown) else if (iscamerabackfacing()) else if (mactivity.getcurrentcameraid() == 2) }

方案二

if(deviceid==2){

rinfo.facing        = 1;

rinfo.orientation   = 270;

於是痛定思痛,驅動中將暫存器寫值write_cmos_sensor(0x3f,0x00);,即不考慮第三方的預覽方向問題,不從底層先設定乙個horizontal mirror映象,當然,cameraclient.cpp檔案中getorientation()恢復原來**,不做修改。根據sensororientation與當前旋轉方向依次調整完預覽的方向,拍照的方向,這樣,正常拍好方向,全景,連拍也不會出現拍照方向倒置的問題了。

if(deviceid==2){

rinfo.facing        = 2;

rinfo.orientation   = 270;

其餘,第三方包括duo和camera360則會開啟main2,按照目前這種方案就肯定有問題,所以索性在cameraservice.cpp裡面,通過程序控制if (cameraid == 2 && 0 != strcmp("com.***.camera", string8(clientpackagename).string()))開啟camera id為1即目前前攝。所遇到的問題,暫時解決。

如有更好方案,歡迎隨時討論。

關於jmstudio 呼叫本地攝像頭的問題

這幾天在學習jmf相關的知識,在除錯程式的過程中第一次能夠成功呼叫到攝像頭,顯示畫面沒什麼問題,可是關掉程式以後再次開啟程式就不行了。會報乙個 could not initial capture device 的錯誤,整了幾天的程式,找了很多的資料都不能解決,最後在乙個老外的論壇上無意看到一句話才終...

筆試面臨的j攝像頭問題

這個問題我今天下午做筆試時碰到了,最後成功解決,可以好好解答下。1 先上解決方案 1 chrome版本 這是應急的方法,但不完美,因為有的人就想讓chrome的版本保持最新 比較強迫症患者 2 網頁 這個才是最關鍵的,因為一般的webcam 就是我們用的usb攝像頭 都是能在qq上直接用的,但是為什...

關於 海康威視 攝像頭的整理

起因 之前做過一段時間關於呼叫海康威視攝像頭的專案,當時也是一系列查查查,網上關於這些的還特別少,後來陸陸續續有網上的朋友問我關於海康威視的問題。也就整理出來方便大家了,其實我做的也不多,說對說錯的地方,也請大家指正了,全當拋磚引玉了 吐槽一下,如果官方api真的大多數人都看不懂,那我覺得海康是要改...