一種基于移動設備動態數據的拍照方法
【技術領域】
[0001]本發明屬于智能終端領域,特別是移動電子設備拍攝照片領域,具體涉及一種基于移動設備動態數據的拍照方法。
【背景技術】
[0002]移動電子設備自身的操作系統內部提供大量的API (Applicat1n ProgrammingInterface,即應用程序編程接口),以方便軟件開發人員編程時調用,用來實現各種功能。但系統提供的API功能有局限性,例如有些API調用時會出現開發者不想用到的效果,且無法屏蔽。
[0003]例如:現有1S系統相機,在拍照時調用系統拍照API,此時如果沒有將物理靜音鍵置于開啟狀態,拍照時會播放拍照聲音。
[0004]現有系統相機需要更改相機設置或者將移動設備完全調為靜音狀態才可進行無聲拍攝,現有操作過于繁瑣,且不能滿足長期需要使用無聲拍照功能的人群。
[0005]隨著技術的發展,用過對于照片品質的需要越來越高,攝像頭分辨率和精度的也越來越高,使得在移動設備在拍攝過程中對于圖像運算的要求速度和運算精度的要求也越來越高,從而對移動設備的自身內存量要求也大大提升,容易引起移動設備發生卡頓現象。
【發明內容】
[0006]為了解決上述問題,本發明提出一種基于移動設備動態數據的拍照方法。本發明旨在提供適用于靜音場合拍攝,克服了拍攝圖片過程中的卡頓現象,拍攝穩定且清晰度高的一種拍照方法。
[0007]為達到上述目的,本發明采用的技術方案是:
一種基于移動設備動態數據的拍照方法,包括以下幾個步驟:
(1)用戶在移動設備拍照界面中按下拍照鍵;
(2)預覽時的視頻流分辨率從普通分辨率切換到最高分辨率;
(3)截取最高分辨率下的視頻幀;
(4)將視頻幀轉換為圖像;
(5)通過移動設備傳感器計算拍照方向,以矯正圖像的信息;
(6)矯正后的圖像作為拍攝照片并保存照片;
(7)再將預覽的視頻流分辨率切換回原始的普通分辨率。
[0008]進一步的是,所述步驟(3)中,截取最高分辨率下的CMSampleBufferRef視頻幀。用視頻流預覽幀代替移動設備中系統拍照API能夠避免拍照時發出拍照聲音。
[0009]進一步的是,所述CMSampleBufferRef視頻幀是從移動設備的攝像頭中捕獲的視頻圖像數據,類似每秒播放N張圖像。
[0010]進一步的是,所述步驟(4)中,將所述CMSampleBufferRef視頻幀轉換為UIImage圖像。UIImage為1S系統中的一種數據類型,用于存儲圖像數據。
[0011]進一步的是,所述步驟(5)采用以下步驟,由移動設備的傳感器,獲取加速度方向;再通過加速度方向,計算圖像的偏正角度,從而獲取到拍照方向;最后由拍照方向所對應的方向信息,來矯正圖像的信息。由于CMSampleBufferRef轉換后的UIImage不帶有拍照方向,如果不矯正,則照片方向會顯示不正確。
[0012]進一步的是,所述加速度方向是通過1S系統中用于獲取加速度的類CMMot1nManager獲取到當前設備的加速度CMAccelerat1n。
[0013]進一步的是,通過所述CMAcceIerat1n就可以獲得當前設備在x、y、z軸上的加速度的值,通過加速度的值得到加速度方向,從而計算出圖像的偏正角度而獲得拍照方向。通過矯正提高拍照的穩定性,從而實現動態高清拍照。
[0014]進一步的是,采用計算出的偏正角度而矯正圖片的Exif信息和圖像信息。Exif是“可交換圖像文件”的縮寫,用于存儲圖片的一些信息,例如拍照方向、拍攝日期、拍攝器材等。
[0015]進一步的是,步驟(6)可對矯正后的圖像進行編輯或特效制作后,作為拍照的照片并保存照片。
[0016]采用本技術方案的有益效果:用視頻流預覽幀代替系統拍照API避免拍照時發出拍照聲音,用戶無論在各種場景下拍照都不會發出拍照聲音,避免了在某些場景下,由于疏忽沒有開啟物理靜音鍵時拍照發出聲響的尷尬情景,方便了在某些特殊場合拍照時的便捷性;拍照時的瞬間將預覽分辨率切換到最高分辨率,然后截取一幀轉換為照片,比普通的靜音拍照方法拍攝的照片質量更高,同時還不會因為實時預覽時分辨率太高引起卡頓,同時兼顧了照片品質和拍照性能;通過照片方向的矯正,提高了拍攝的穩定性,從而提高了在動態情況下拍攝效果的清晰度。
【附圖說明】
[0017]圖1為本發明的的方法流程圖;
圖2為本發明的實施例一的方法流程圖;
圖3為本發明的實施例二的方法流程圖。
【具體實施方式】
[0018]為了使本發明的目的、技術方案和優點更加清楚,下面結合附圖對本發明作進一步闡述。
[0019]參見圖1所示,一種基于移動設備動態數據的拍照方法,包括以下幾個步驟:
(1)用戶在移動設備拍照界面中按下拍照鍵;
(2)預覽時的視頻流分辨率從普通分辨率切換到最高分辨率;
(3)截取最高分辨率下的視頻幀;
(4)將視頻幀轉換為圖像;
(5)通過移動設備傳感器計算拍照方向,以矯正圖像的信息;
(6)矯正后的圖像作為拍攝照片并保存照片;
(7)再將預覽的視頻流分辨率切換回原始的普通分辨率。
[0020]實施例一: 參見圖2所示,一種基于移動設備動態數據的拍照方法,包括步驟:
(I)用戶在移動設備拍照界面中按下拍照鍵。
[0021](2)預覽時的視頻流分辨率從普通分辨率切換到最高分辨率。
[0022](3)截取最高分辨率下的視頻幀。
[0023]截取最高分辨率下的CMSampleBufferRef視頻幀。用視頻流預覽幀代替移動設備中系統拍照API能夠避免拍照時發出拍照聲音。CMSampleBufferRef視頻幀從移動設備的攝像頭中捕獲的視頻圖像數據,類似每秒播放N張圖像。
[0024](4)將視頻幀轉換為圖像。
[0025]將CMSampleBufferRef視頻幀轉換為UIImage圖像。UIImage為1S系統中的一種數據類型,用于存儲圖像數據。
[0026](5)通過移動設備傳感器計算拍照方向,以矯正圖像的信息。
[0027]由移動設備的傳感器,獲取加速度方向;再通過加速度方向,計算圖像的偏正角度,從而獲取到拍照方向;最后由拍照方向所對應的方向信息,來矯正圖像的信息。由于CMSampleBufferRef轉換后的UIImage不帶有拍照方向,如果不矯正,則照片方向會顯示不正確。
[0028]所述加速度方向是通過1S系統中用于獲取加速度的類CMMot1nManager獲取到當前設備的加速度CMAcce I erat 1n。
[0029]通過所述CMAccelerat1n就可以獲得當前設備在x、y、z軸上的加速度的值,通過加速度的值得到加速度方向,從而計算出圖像的偏正角度而獲得拍照方向,計算方式如下:
利用angle = atan2 (y, x)計算角度。
[0030]其中,如果angle>=_2.25且angled 25,則照片為正常方向;如果angle>=-l.75且angle〈=0.75,則照片為正常方向向左旋轉90° ;如果angle〉= 0.75且angle〈=2.25,則照片為正常方向向左旋轉180° ;如果angle〈= -2.25或angle〉= 2.25,則照片為正常方向向左旋轉270°。
[0031]采用計算出的偏正角度而矯正圖片的Exif信息和圖像信息。通過照片方向的矯正,能夠實現在拍攝角度存在偏斜時,偏正角度在0-270°范圍內均可實現有效的矯正,提高了拍攝的穩定性,從而提高了在動態情況下拍攝效果的清晰度。
[0032]Exif是“可交換圖像文件”的縮寫,用于存儲圖片的一些信息,例如拍照方向、拍攝日期、拍攝器材等。
[0033](6)矯正后的圖像作為拍攝照片并保存照片。
[0034](7)再將預覽的視頻流分辨率切換回原始的普通分辨率。
[0035]實施例二:如圖3所示,可對矯正后的圖像進行編輯或特效制作后,根據判斷是否疊加特效,對照片進行編輯或特效制作,作為拍照的照片并保存照片。通過將預覽幀轉換為的圖片格式,實現圖片的添加特效或編輯。
[0036]以上顯示和描述了本發明的基本原理和主要特征和本發明的優點。本行業的技術人員應該了解,本發明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發明的原理,在不脫離本發明精神和范圍的前提下,本發明還會有各種變化和改進,這些變化和改進都落入要求保護的本發明范圍內。本實發明要求保護范圍由所附的權利要求書及其等效物界定。
【主權項】
1.一種基于移動設備動態數據的拍照方法,其特征在于,包括以下幾個步驟: (1)用戶按下移動設備的拍照鍵; (2)預覽時的視頻流分辨率從普通分辨率切換到最高分辨率; (3)截取最高分辨率下的視頻幀; (4)將視頻幀轉換為圖像; (5)通過移動設備傳感器計算拍照方向,以矯正圖像的信息; (6)矯正后的圖像作為拍照的照片并保存照片; (7 )再將預覽的視頻流分辨率切換回原始的普通分辨率。2.根據權利要求1所述一種基于移動設備動態數據的拍照方法,其特征在于,所述步驟(3)中,截取最高分辨率下的CMSampleBufferRef視頻幀。3.根據權利要求2所述的一種基于移動設備動態數據的拍照方法,其特征在于,所述CMSampIeBuff erRef視頻幀是從移動設備的攝像頭中捕獲的視頻圖像數據。4.根據權利要求3所述的一種基于移動設備動態數據的拍照方法,其特征在于,所述步驟(4)中,將所述CMSampleBufferRef視頻幀轉換為UIImage圖像。5.根據權利要求1所述的一種基于移動設備動態數據的拍照方法,其特征在于,所述步驟(5)包括以下步驟,由移動設備的傳感器,獲取加速度方向;再通過加速度方向,計算圖像的偏正角度,從而獲取到拍照方向;最后由拍照方向所對應的方向信息,來矯正圖像的?目息O6.根據權利要求5所述的一種基于移動設備動態數據的拍照方法,其特征在于,所述加速度方向是通過1S系統中用于獲取加速度的類CMMot1nManager獲取到當前設備的加速度 CMAccelerat1n07.根據權利要求6所述的一種基于移動設備動態數據的拍照方法,其特征在于,通過所述CMAcceIerat1n就可以獲得當前設備在x、y、z軸上的加速度的值,通過加速度的值得到加速度方向,從而計算出圖像的偏正角度而獲得拍照方向。8.根據權利要求7所述的一種基于移動設備動態數據的拍照方法,其特征在于,采用計算出的偏正角度而矯正圖片的Exif信息和圖像信息。9.根據權利要求1所述的一種基于移動設備動態數據的拍照方法,其特征在于,步驟(6)可對矯正后的圖像進行編輯或特效制作后,作為拍照的照片并保存照片。
【專利摘要】本發明公開了一種基于移動設備動態數據的拍照方法,包括以下幾個步驟:用戶按下移動設備的拍照鍵;預覽時的視頻流分辨率從普通分辨率切換到最高分辨率;截取最高分辨率下的視頻幀;將視頻幀轉換為圖像;通過移動設備傳感器計算拍照方向,以矯正圖像的信息;矯正后的圖像作為拍照的照片并保存照片;再將預覽的視頻流分辨率切換回原始的普通分辨率。本發明旨在提供適用于靜音場合拍攝,克服了拍攝圖片過程中的卡頓現象,拍攝穩定且清晰度高的一種拍照方法。
【IPC分類】H04N5/232
【公開號】CN105120173
【申請號】CN201510570696
【發明人】宋潘
【申請人】成都品果科技有限公司
【公開日】2015年12月2日
【申請日】2015年9月10日