A. 黃油相機瘦臉功能在哪
點擊正中間的相機圖標。
右側的小女孩圖標。
功能。
點擊三個圓圈。
即可選擇瘦臉,濾鏡等選項。
在當今這個注重容貌的時代,擁有一張好看的臉實在是太重要了。在美麗出現之前,人們只能用手機最原始的相機拍照。鏡頭里的人往往不化妝,不能拍照,甚至比自己更丑,所以他們不會有拍照的慾望。而美容相機的出現,就像普通人的祝福一樣,讓我們可以在相機里展現出更加美麗的一面,所以越來越多的女孩開始拍照。美不僅適用於相機應用,也適用於直播、短視頻和視頻通話
B. vivo X21手機拍照怎麼瘦臉
vivo X21手機是支持瘦臉功能的,
建議先進入相機中進行拍攝,然後再在相冊中查看圖片,點擊編輯--去美顏--選擇瘦臉即可。
C. vivos12相冊手動瘦臉在那裡
vivos12相冊右上角的三個點。
可以打開相機然後點擊右上角的三個點。開啟語音快門,拍照時說「瘦一點」即可瘦臉。
vivos12支持微信視頻通話美顏功能,同時支持低、中、高三檔美顏程度選擇。
D. 黃油相機怎麼瘦臉
黃油相機瘦臉功能如下:
工具:iPhone 12
系統:iOS 13
版本:v8.11.1.10黃油相機
打開黃油相機,點擊正中間的相機圖標。
E. oppo手機瘦臉怎麼設置
ColorOS 5.2及以上版本增加自定義美顏功能:
1、首次啟動相機美顏自拍模式,提示用戶有自定義美顏參數的選擇。用戶設置後保存的參數,為個人自定義的美顏。
2、拍照模式下默認AI 拍照,點選自定義美顏圖標一次表示選中,再點選一次展開編輯頁面,進入自定義編輯模式。
3、自定義編輯模式開放8個功能供調節,磨皮、瘦臉、小臉、下巴、大眼、瘦鼻、補妝、立體。
溫馨提示:
自定義美顏同時適用於前置照片、前置貼紙,不支持後置拍攝。
本回答適用於OPPO所有機型。
F. 請問華為相機的瘦臉
在開啟「魅我」時,請您根據屏幕提示,拍出三張不同角度的個人照。
在設置美膚效果時,請您設置中設置的平滑、瘦臉、美白等參數。如果參數設置很小,美膚和瘦臉效果會較弱。
HUAWEI nova 3i & 麥芒7 手機在設置美膚效果時,請您在設置中設置光滑、瘦臉、美白等參數。如果參數設置很小,美膚和瘦臉效果會較弱。
如果按照以上方法操作後,依然看不出美膚瘦臉效果,請您提前備份好重要數據,攜帶購機發票前往就近的華為客戶服務中心檢測處理。
G. 小米手機瘦臉功能設置
小米手機瘦臉功能不用單獨設置的,手機前置是自帶美顏瘦臉的。
打開相機,鏡頭切換到前置攝像頭,也就是自拍模式,美顏功能只在自拍時才會有,如果不用美顏,關掉美顏就可以了。
小米手機是中國科技公司小米科技旗下的智能手機系列品牌,於2011年8月16日在北京發布了首款產品。小米手機一直是性價比的代名詞。
小米手機系列被定位為小米的智能手機主力系列,主打中高端市場,重視用戶體驗和技術創新。小米手機以及後續迭代產品一經推出便銷量火爆,曾一度因供不應求導致限量搶購。2011年7月12日小米創始團隊正式亮相,宣布進軍手機市場,旗下3款產品:MIUI、米聊、小米手機。
H. 抖音在相冊選的照片怎麼瘦臉
抖音在相冊里選出來的照片是不能瘦臉的。可以先瘦完臉,再在抖音相冊里選出來。有很多p圖軟體很好用。
1.醒圖
這些軟體都很好上手,不失真,很好操作。
I. 仿抖音特效相機之大眼瘦臉
本文是講解特效相機中的大眼瘦臉的實現,完整源碼可查看 AwemeLike 。
要實現瘦臉大眼,首先需要獲取到人臉特徵點,在本項目中使用的是Face++的人臉識別庫,它可以獲取到106個人臉特徵點,接著再通過變形演算法就可以實現了。
項目使用的瘦臉演算法是參照這篇文章 在OpenGL中利用shader進行實時瘦臉大眼等臉型微調
textureCoord 表示當前要修改的坐標, originPosition 表示圓心坐標, targetPosition 表示目標坐標, delta 用來控制變形強度。
上述shader方法可以這樣理解,首先確定一個以 originPosition 為圓心、 targetPosition 和 originPosition 之間的距離為半徑的圓,然後將圓內的像素朝著同一個方向移動一個偏移值,且偏移值在距離圓心越近時越大,最終將變換後的坐標返回。
如果將方法簡化為這樣的表達式 變換後的坐標 = 原坐標 - (目標坐標 - 圓心坐標) * 變形強度 ,也就是說,方法的作用就是要在原坐標的基礎上減去一個偏移值,而 (targetPosition - originPosition) 決定了移動的方向和最大值。
式子中的 變形強度 可以這樣表示:
除了項目中使用的演算法,還有另外兩種臉部變形演算法可以使用,一個是基於 Interactive Image Warping 的局部調整演算法(其原理可查看 文章 ),我們在項目中使用的演算法其實可以看做是它的一個變種,都可以用表達式 變換後的坐標 = 原坐標 - (目標坐標 - 圓心坐標) * 變形強度 來表示,不同之處在於 變形強度 的取值不同。;另一個是基於 Image deformation using moving least squares 的全局點位變形演算法(其原理可查看 文章 )。
當我們要使用上述瘦臉演算法時,只需要選取多對特徵點作為 originPosition 和 targetPosition ,使得它們作用范圍覆蓋的兩個臉頰和下巴,然後通過改變 delta 來控制瘦臉的強度。
在Face++中,獲取的106個特徵點分布如下
將這106個特徵點上傳到片元著色器
設置統一的變形強度
指定圓心坐標和目標坐標,共有9對
大眼演算法也是參照這篇文章 在OpenGL中利用shader進行實時瘦臉大眼等臉型微調
textureCoord 表示當前要修改的坐標, originPosition 表示圓心坐標, radius 表示圓的半徑, delta 用來控制變形強度。
和瘦臉的演算法類似,根據 originPosition 和 targetPosition 確定一個圓,圓內的坐標會參與計算,圓外的不變。
圓內的坐標圍繞圓心 originPosition 在變化,最終的坐標完全是由 weight 的值決定, weight 越大,最終的坐標變化越小,當 weight 為1,即坐標處於圓邊界或圓外時,最終的坐標不變;當 weight 小於1時,最終的坐標會落在原坐標和圓點之間,也就是說最終返回的像素點比原像素點距離圓點更近,這樣就產生了以圓點為中心的放大效果。
項目中的 FaceDetector 是一個專門用來處理Face++相關的操作的類,其頭文件如下
使用前需要替換Face++的key和secret,在項目中,它的路徑是 Face++/MGNetAccount.h ,然後調用授權方法,授權成功之後才能使用face++的人臉檢測。
face++接受的是 CMSampleBufferRef 類型的視頻幀,但他不支持YUV格式,所以在解碼時需要選擇BGRA格式。
項目使用 GPUImage 來做解碼,但 GPUImage 庫在將視頻幀解碼為BGRA格式時有一些實現問題,所以我們在使用相機和讀取視頻文件時,一定要使用項目自己創建的 GPUImageFaceCamera 和 GPUImageFaceMovie ,它們分別繼承自 GPUImage 的 GPUImageVideoCamera 和 GPUImageMovie ,在內部重寫了一些配置方法,使得返回的視頻幀格式都是BGRA。
除此以外,這兩個類在獲取到視頻幀之後還會自行調用 FaceDetector 的 - (void)getLandmarksFromSampleBuffer:(CMSampleBufferRef)detectSampleBufferRef; 方法獲取人臉信息,使得我們可以在之後的濾鏡類中直接使用它解析出來的人臉數據了。
人臉方向是指人臉在視頻幀中的逆時針偏移角度,偏移角度為0表示人臉是正的,處於豎直方向。
如果給我們一張人臉的圖片,我們的肉眼很容易判斷出人臉在圖片中的偏移角度,但是傳遞給face++的是一個來自相機或視頻文件視頻幀,那麼我們應該如何獲取人臉的偏移角度呢。
1. 相機拍攝( GPUImageFaceCamera )
當使用相機拍攝時,相機產生的視頻幀默認情況下和我們看到的並不一樣,可以通過 AVCaptureConnection 類的屬性 videoOrientation 來指定視頻幀的方向,其取值有如下幾種
上面提到的原圖就是我們肉眼看到的場景,它和相機或視頻文件產生的視頻幀可能是不一樣的。
因為項目是通過 GPUImage 庫來調用相機的,而 GPUImage 並沒有設置這個屬性——它使用的是默認值,所以項目使用的是這個屬性的默認值。(使用默認值可能是性能原因,因為設置這個屬性會導致系統應用一個相應matrix來旋轉視頻幀,GPUImage選擇將旋轉操作放到了GPU中執行)
後置攝像頭
在使用後置攝像頭時, videoOrientation 屬性的默認值是 ,也就是說當手機水平方向放置,且home鍵在右邊時,相機產生的圖片和原圖一致。
根據這個,我們可以得出下面兩個變換圖,左邊的圖片代表原圖(實際場景),右邊代表相機產生的視頻幀,也是傳遞給face++的視頻幀,每一行代表一個放置手機的方向。
我們需要根據上面兩個圖來得到人臉的偏移角度
首先我們需要設置了一個前提,人臉在原圖中總是處於豎直方向的,即偏移角度為0,這其實是符合邏輯的,我們的腦袋不可能歪到大於90度。
然後我們可以將上圖中的3和4看做是人臉,計算出右圖中的3和4的旋轉角度,就可以得出在當前手機方向下人臉的偏移角度。
最終我們得出了下面這個對照表
前置攝像頭
使用前置攝像頭時, videoOrientation 的默認值為 ,同樣的,當手機水平方向放置進行拍攝,home鍵在左邊時,相機產生的圖片和原圖是水平鏡像的關系,所以還需要額外做一個水平方向的翻轉,這時的圖片才和原圖一樣。
同樣給出手機處於豎直方向或水平方向拍攝時,原圖和視頻幀的變換
手機方向和人臉偏移角度的對照表
相比後置攝像頭,使用前置攝像頭時需要多做一個額外的水平翻轉,由於face++並沒有提供設置水平翻轉的介面,所以在識別前置攝像頭產生的圖片時,face++返回的人臉數據有一些小問題——人臉特徵點的排列順序左右顛倒了,不過這個問題是可以忽略的,因為人臉兩邊是對齊的;還有一個問題就是歐拉角的方向會取反,這個我們後面會講到怎麼解決。
檢測手機的方向
由於App只支持 Portrait 方向,所以無法使用類似 - (void):(UIInterfaceOrientation)toInterfaceOrientation ration:(NSTimeInterval)ration 方法來獲取手機方向。
一個更好的方法是通過 CoreMotion 檢測xyz方向的加速度,以此來判斷當前手機的朝向
2. 從視頻文件獲取( GPUImageFaceMovie )
通過 AVAssetTrack 的 preferredTransform 屬性獲得變換矩陣,再通過矩陣來判斷視頻的旋轉角度,也即是人臉的旋轉角度。
face++返回的人臉數據會在哪裡被使用?
GPUImage 會將視頻幀上傳到紋理中,然後將紋理傳遞給後續的 targets , targets 是指那些遵守了 GPUImageInput 協議的類,在這里我們簡稱它們為濾鏡類。
face++返回的人臉數據只會被使用在這些濾鏡類中,這些濾鏡類中的紋理圖片和傳遞給face++做人臉檢測的視頻幀是不一樣的,也就是說生成人臉數據時的參考坐標系和使用人臉數據時的參考坐標系是不同的。所以在使用人臉數據之前,我們還需要對人臉數據做一些轉換操作。
問題是如何轉換
之前在設置人臉方向時,我們已經了解了視頻幀,那麼濾鏡類中的紋理又是什麼樣的,可以參考下面這張圖
第一行使用後置攝像頭,第二行使用前置攝像頭;
第一列和第二列分別表示原圖和相機產生的視頻幀;
第三列表示視頻幀上傳到紋理時的情形,因為OpenGL的原點是在左下角,所以需要上下顛倒;
第四列表示變換後的紋理圖片,也就是濾鏡類中的紋理圖片。
( GPUImage 是如何從上圖的第三列變換到第四列的,查看 GPUImageVideoCamera 的方法 可知,按照本項目對 GPUImageVideoCamera 的配置( outputImageOrientation=, _=true ,前置),當使用後置攝像頭時,用來指定旋轉的枚舉是 kGPUImageRotateRight ,當使用前置攝像頭時,用來指定旋轉的枚舉是 ,這兩個枚舉的名字剛好是反向變換——第四列變換到第三列所需要的步驟)
特徵點坐標
假設 point 表示使用後置攝像頭時Face++的特徵點坐標,對應上圖的第一行的視頻幀,它是以4號位作為原點,也就是說 point 的值是相對於4號位的,然後我們再看第一行的最終紋理圖片,原點是3號位,4號位變換到右下角了,我們需要做的是將 point 變換到以3號位為原點。
所以變換後的 point 應該等於 (height - point.y, point.x) ,其中width是第二列視頻幀的4號位和2號位所在的那條邊的長度,height是視頻幀的4號位和3號位所在的那條邊的長度。
特徵點變換規則如下
歐拉角
faceinfo 的三個屬性 pitch 、 yaw 、 roll 分別表示人臉在未變換的視頻幀中圍繞x、y、z軸的旋轉角度。
J. 美顏相機如何把臉p肥
瘦臉往負數點。
找到美顏相機中的瘦臉,往負數拖拽即可。
美顏相機是一款把手機變自拍神器的APP,由廈門美圖網科技有限公司開發。