【问题标题】:How to scale down physical size of image in Python OpenCV如何在 Python OpenCV 中缩小图像的物理尺寸
【发布时间】:2020-01-11 02:40:24
【问题描述】:

如何按物理尺寸缩小图像?

例如,我需要一个 200KB 大小的 640*480 图像,必须缩小到 75KB 保留相同的 640*480。

尝试使用 cv2.resize 和 cv2.PyrDown。这两种方法主要关注分辨率。随着分辨率的降低,尺寸也会减小。使用这些方法按比例缩小然后按比例放大会根据需要减小尺寸,但会损失图像质量。

还有其他缩小图片尺寸的方法吗?

这是基本问题,MTCNN_face_detection_alignment lagging in IP camera, Convention behind opencv cv2 videocapture frame matrix

【问题讨论】:

  • 这可能会有所帮助...stackoverflow.com/a/52281257/2836621
  • 查看您的基本问题,问题实际上似乎是您的 IP 摄像机生成的图像比您的内置摄像机物理上更大,即使两种情况下的分辨率相同?这是正确的吗?
  • @TheBarrometer 是的。这是正确的。 IP 摄像机具有更高的分辨率。使用 cv2.resize 缩小从 IP 摄像机捕获的帧分辨率以匹配内置摄像机分辨率。然而,缩小后的 Ip 相机框架尺寸仍然没有像内置尺寸一样缩小。
  • @MarkSetchell 不属于 opencv。这意味着我必须将 cv2 帧转换为 JPEG 文件并进行处理。然后转换回帧进行检测,这是我的基本要求。因此,如果可能,请在 opencv 本身中寻找解决方案。

标签: python opencv


【解决方案1】:

请看下面的代码。

# store image shape
(h, w) = img.shape

scale_percent = 40 # percent of original size
width = int(img.shape[1] * scale_percent / 100) 
height = int(img.shape[0] * scale_percent / 100) 
dim = (width, height) 

resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA) 

cv2.imshow('resized image', resized)

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多