【发布时间】:2020-01-04 17:23:34
【问题描述】:
我现在的情况是我有很多不同尺寸的图片,有些是 769x864 像素,有些是 2000x3123 像素,有些甚至是 3500x4000 像素。
我想使用 openCV 将所有图片的大小调整为特定的高度和宽度,或者至少接近给定的高度和宽度。
我知道cv2.resize() 函数,但问题是我如何定义一个固定尺寸,例如 800x900,而不改变原始图片的形状。
有人知道如何做到这一点吗?
【问题讨论】:
-
使用输出/输入的维度之一计算 fx 或 fy 的比例因子。然后将该因子用于 fx 和 fy。结果将匹配一维并保持输入的纵横比。例如 fx=fy=output_width/input_width 或 fx=fy=output_height/input_height。如果您需要结果正好是 800x900,那么您必须填充结果或裁剪结果。
-
您可能正在寻找“Seam Carving”,也称为“Liquid Rescaling”,请参阅en.m.wikipedia.org/wiki/Seam_carving
标签: python opencv image-processing resize