Aspect Ratio转换

DAR: Display Aspect Ratio , 可以通过MediaInfo获取. 为16:9 或 4:3.

SAR: Storage Aspect Ratio, 片源每帧的width/height值.

PAR: Pixel Aspect Ratio. 1:1 表示 square pixels . 表示每个像素的宽高比.

 

相互的关系:

        DAR = SAR * PAR.

        PAR = DAR /  SAR.

 

情形举例:

       假设一个文件的SAR为5:4, WxH为60x48, DAR为4:3[60:45]. 则按照上式, PAR=16/15. 即每个像素的宽高比为16:15.

       将一个60x48的矩形放入一个60x45的矩形. 有两种选择: 

          a.  满足宽: 60x45, 高压缩了3个像素. 每个像素减少的比例为(48-45)/48 = 1/16. 即每个像素的宽高比为16:15.

          b.  满足高: 64x48, 宽超出了4个像素, 不考虑.

 

疑问:

      数字信号显示时, PAR为1, 是否只需考虑DAR即可?


 

Video Format (WxH)Name Storage Aspect Ratio (W:H) Pixel aspect ratio (W:H)
(Standard 4:3)
Pixel aspect ratio (W:H)
(Anamorphic 16:9)
Description
720×576576i5:416:1564:45Used on D1 /DV PAL (ITU-R 601 )
704×576576p11:912:1116:11Used on EDTV PAL
720×480480i3:28:932:27Used on DV NTSC
720×486480i40:279:106:5Used on D1 NTSC (ITU-R 601 )
704×480480p22:1510:1140:33Used on EDTV NTSC

 


 

The 704 vs. 720 horizontal resolution is due to overscan (nominal analogue blanking), and 480 vs. 486 (NTSC vertical) is due to rounding.

 


 

 

src:

http://en.wikipedia.org/wiki/Pixel_aspect_ratio#pardigital

http://en.wikipedia.org/wiki/Standard-definition_television#Resolution

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Eye aspect ratio(EAR)是一种度量眼睛疲劳或睡眠状态的方法。它通过测量眼睑的开合程度来计算,以下是如何使用EAR的步骤: 1. 安装dlib和opencv库,并导入相关库。 ```python import cv2 import dlib from scipy.spatial import distance ``` 2. 定义EAR函数,计算眼睛的EAR值。 ```python def eye_aspect_ratio(eye): # 计算垂直方向上的两个点之间的距离 A = distance.euclidean(eye[1], eye[5]) B = distance.euclidean(eye[2], eye[4]) # 计算水平方向上的一个点到另一个点之间的距离 C = distance.euclidean(eye[0], eye[3]) # 计算EAR值 ear = (A + B) / (2.0 * C) return ear ``` 其中,eye是一个包含6个点的元组,表示眼睛的六个关键点,分别是: - 左眼:(36, 37, 38, 39, 40, 41) - 右眼:(42, 43, 44, 45, 46, 47) 3. 加载人脸检测器和眼睛检测器,并使用它们来检测眼睛的位置。 ```python detector = dlib.get_frontal_face_detector() predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat') # 打开摄像头 cap = cv2.VideoCapture(0) while True: # 读取摄像头画面 ret, frame = cap.read() # 转换为灰度图像 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 检测人脸 faces = detector(gray, 0) for face in faces: # 检测眼睛 leftEye = [] rightEye = [] landmarks = predictor(gray, face) for n in range(36, 48): x = landmarks.part(n).x y = landmarks.part(n).y if n < 42: leftEye.append((x, y)) else: rightEye.append((x, y)) # 计算EAR值 leftEAR = eye_aspect_ratio(leftEye) rightEAR = eye_aspect_ratio(rightEye) # 绘制眼睛区域 cv2.polylines(frame, [leftEye], True, (0, 255, 0), 1) cv2.polylines(frame, [rightEye], True, (0, 255, 0), 1) # 显示EAR值 cv2.putText(frame, "Left EAR: {:.2f}".format(leftEAR), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) cv2.putText(frame, "Right EAR: {:.2f}".format(rightEAR), (10, 60), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) # 显示画面 cv2.imshow('frame', frame) # 按q键退出 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放摄像头 cap.release() cv2.destroyAllWindows() ``` 4. 运行程序,摄像头会打开并显示画面,同时会显示眼睛的EAR值和眼睛区域的轮廓。如果EAR值过低,表示眼睛疲劳或睡眠不足,需要休息一下。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值