怎么通过media foundation将图像数据写入虚拟摄像头_[Camera]摄像头镜像
生活随笔
收集整理的這篇文章主要介紹了
怎么通过media foundation将图像数据写入虚拟摄像头_[Camera]摄像头镜像
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
platform:RK3399
OS:Android 7.1
參考:
1.石先 https://www.jianshu.com/p/7d88ec1347b6
2.KrisFei https://blog.csdn.net/kris_fei/article/details/103024505
3.KrisFei https://blog.csdn.net/kris_fei/article/details/79298971
4.KrisFei https://blog.csdn.net/kris_fei/article/details/79550161
1. Camra簡介
1.1 Camera常見類型
在RK HAL中,規定了不同類型的adapter,對應不用類型的camera
- CameraUSBAdapter: USB接口類型的攝像頭,走v4l2.
- CameraIspSOCAdapter:dvp接口,isp控制器接收。
- CameraIspAdapter:mipi接口,isp控制器接收,不走v4l2.
- CameraSOCAdapter:dvp接口,VIP控制器接收。
總的來說,Camera常見的類型就是MIPI接口,DVP接口和USB接口三種類型.
1.2 Camera方向
前置和后置
Android系統是區分前置和后置攝像頭的.以手機來說:屏幕上方的攝像頭一般為前置攝像頭;手機背面的攝像頭一般為后置攝像頭.
在Android系統中,前置攝像頭一般使用"Front"表示;后置攝像頭一般使用"Back"表示.
一般來說,前置攝像頭使用的是鏡像;后置攝像頭使用的是正常視角.所以在不是那么區分前后攝像頭的設備上,比如機器人,就有可能因為前后置攝像頭問題導致預覽和拍照出現鏡像問題.這也是解決鏡像問題的主要思路.
預覽和拍照
Camera的數據是來自于攝像頭硬件的圖像傳感器,攝像頭一旦被固定之后是有一個默認的取景方向的.如下圖所示.
- Camera預覽方向
由于手機屏幕可以 360 度旋轉,為了保證用戶無論怎么旋轉手機都能看到“正確”的預覽畫面。Android 系統底層根據當前手機屏幕的方向對圖像 Sensor 采集到的數據進行了旋轉處理后才傳輸給顯示系統。因此,你在打開 Camera 應用后,無論怎么旋轉手機都能看到“正確”的畫面,即預覽界面的畫面和人眼看到的畫面一致. - Camera拍照方向
當你點擊拍照按鈕,得到的圖片方向不一定與畫面中的預覽方向一致,這是因為拍攝的照片是將圖像 Sensor 采集到的數據直接存儲到 SDCard上的,因此 Camera 的拍照方向與圖像 Sensor 方向一致。
如果橫向拿手機拍照,由于正好與 Camera 的拍照方向一致,因此得到的照片是“正確”的;而豎著拿手機拍照的話,圖像 Sensor 依然以上面描述的角度在采集圖像后存儲到 SDCard 上,所以得到的圖片因為豎著拿手機正好與圖像 Sensor 的方向相差了 90 度。
2. Camera鏡像
2.1 MIPI Camera方向
<SensorFacing- 修改faceing參數可以修改MIPI攝像頭為前置還是后置;
- 修改SensorOrientation參數可以修改方向
- 修改SensorMirrorFlip也可以實現鏡像
2.2 USB Camera鏡像
方法一:
---方法二:
---方法三:
直接讓USB廠商修改ISP固件,直出數據就直接鏡像.
其他方式可參考USB Camera旋轉圖像方法
2.3 DVP Camera鏡像
參考:DVP Camera旋轉預覽和回調數據
主要思路是:通過修改模組寄存器的flip參數,來修改方向.
總結
以上是生活随笔為你收集整理的怎么通过media foundation将图像数据写入虚拟摄像头_[Camera]摄像头镜像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html 树形结构_HTML学习之语义化
- 下一篇: 京东方为魅族 20 系列手机独供屏幕:首