我維護一個網站,其中包含與列表相關的大約30,000張圖像的數據庫。這些圖像具有許多不同的尺寸和高寬比,因此爲了在網站上以統一的方式呈現這些圖像,我編寫了一個功能,使我能夠以特定的高寬比響應地呈現圖像。使用人臉檢測座標計算背景位置
function image($src,$aspect) {
$html = '<img class="img-responsive" src="furniture/blank-'.$aspect.'.png" style="background:url(\''.$src.'\');background-position:center center;background-size:cover;" >';
return $html;
}
以我「傢俱」的文件夾我在所需的寬高比的一組透明PNG文件來強制使實際圖像成爲背景的容器的大小。因此,例如,有一個4x3.png文件,它只是一張4像素寬,3像素高的空白圖形,可以用圖像調用('path/to/image.jpg','4x3') - 效果很好。
但是,問題出現在圖像中有人的面部時,因爲默認的「中心」定位有時會切斷頭部。
我已經完成了人臉檢測的步驟,數據庫中的每個記錄都有一個標誌,表示在圖像中是否找到了人臉,如果是,則顯示X,Y和寬度值。然後,這個問題試圖找出背景位置,因爲我正在處理響應式佈局,所以不知道圖像顯示的大小。
我假設我需要遵循的邏輯是;
IF圖像具有面對它 然後設置背景位置垂直方向的偏移基於Y計算的臉 ELSE 背景位置設置爲中心中心點座標
如何找出記住圖像大小的垂直偏移值的值是未知的?
您最後需要保存在數據庫中的圖像的寬高比。沒有這個,你無法計算未知數。 –