Letterbox,Pillarbox和Pan&Scan

本文介绍了不同屏幕比例(4:3与16:9)之间的几种常见适配方式,包括PillarBox、Pan&Scan、LetterBox等,并解释了每种方式的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Auto

  不改变窗口设置
16:9 PillarBox:

  4:3的图像,在16:9的显示屏上显示时,上下到顶,左右会添加黑边。

16:9 Pan&Scan

  4:3的图像,在16:9的显示屏上显示时,图像与设备同宽,垂直方向多余的图像会被截去。
4:3 Letter Box

  16:9的图像,在4:3的显示屏上显示时,左右到顶,上下会添加黑边。
4:3 Pan&Scan

  16:9的图像,在4:3的显示屏上显示时,图像与设备同高,水平方向多余的图像会被截去。
4:3 Full

  16:9的图像,在4:3的屏幕上,满屏显示。

16:9 Wide Sreen

  4:3的图像,在16:9的屏幕上满屏显示。

  

### Letterbox与Resize的区别及用法 #### 基本概念 Letterboxing 是一种图像处理技术,用于调整图像尺寸的同时保持其原始纵横比。相比之下,普通的 Resize 方法可能会改变图像的宽高比例,从而导致变形。 在计算机视觉领域,Letterboxing 的主要目的是通过向图像周围添加填充(通常是黑色像素),使图像适配目标尺寸而不失真[^1]。而传统的 Resize 则可能拉伸或压缩图像以匹配指定的目标尺寸,这可能导致对象形状被扭曲。 #### 实现细节对比 当使用 OpenCV 进行图像预处理时,可以通过计算顶部、底部、左侧右侧的填充量来完成 Letterboxing 操作。具体来说: - **Top**: `(letterbox_rows - resize_rows) / 2` - **Bottom**: `(letterbox_rows - resize_rows + 1) / 2` - **Left**: `(letterbox_cols - resize_cols) / 2` - **Right**: `(letterbox_cols - resize_cols + 1) / 2` 这些参数定义了如何围绕缩小后的图像均匀分布额外的空间[^2]。 对于 YOLOv5 或其他先进的目标检测框架而言,优化版 letterbox 策略会尝试最小化不必要的填充区域,减少数据冗余并提升模型推理效率[^3]。而在最新版本如 YOLOv8 中,不仅实现了更高效的图像调整方法,还同步考虑到了标注框坐标的相应变换逻辑[^4]。 以下是基于 Python OpenCV 的简单示例代码展示两种方式的应用场景差异: ```python import cv2 import numpy as np def simple_resize(image, target_width, target_height): """直接缩放到固定大小""" resized = cv2.resize(image, (target_width, target_height)) return resized def apply_letterbox(image, target_size, color=(0, 0, 0)): """应用信封式填充至特定大小""" height, width = image.shape[:2] ratio = min(target_size[0]/height, target_size[1]/width) new_unpad = int(round(width * ratio)), int(round(height * ratio)) dw = (target_size[1] - new_unpad[0]) // 2 dh = (target_size[0] - new_unpad[1]) // 2 img_resized = cv2.resize(image, new_unpad, interpolation=cv2.INTER_LINEAR) result = cv2.copyMakeBorder(img_resized, top=dh, bottom=dh, left=dw, right=dw, borderType=cv2.BORDER_CONSTANT, value=color) return result ``` 上述函数 `simple_resize()` 展示了一个基本的重设大小操作;相反地,`apply_letterbox()` 函数则体现了完整的字母盒流程——先按比例裁剪再补全空白区。 #### 总结 因此,在实际项目开发过程中选择哪种手段取决于具体需求:如果优先级在于维持物体的真实外观特征,则推荐采用 letterbox 技术;反之若是单纯追求快速简便的数据转换过程的话,常规意义上的 resize 就已经足够满足条件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值