zoukankan      html  css  js  c++  java
  • 图像缩放/插值

    图像缩放有放大、缩小、等比缩放和非等比缩放几种
    import cv2
    img = cv2.imread('../img/zidan.jpg')
    imgInfo = img.shape
    print(imgInfo)
    height = imgInfo[0]
    width = imgInfo[1]
    #图像缩放有放大、缩小、等比缩放和非等比缩放几种
    dstHeight = int(height*0.5)
    dstWidth = int(width*0.5)
    dstImg = cv2.resize(img,(dstWidth,dstHeight))
    cv2.imshow('等比缩小一倍',dstImg)
    cv2.waitKey(0)
    效果图:

     插值方法有:最近邻域插值       像素关系重采样         立方插值     双线性插值(默认)

    目标图片某一点的x坐标对应原图片的坐标=目标图片的x坐标*(原图片的宽度/目标图片的宽度)

    双线性插值法:当目标图像中的某一个像素点对应原图像的像素点值为小数时;

    如图所示:

    A1 = A2 = 15*0.2 + 16*0.8

    B1 = B2 = 22*0.3 + 23*0.7

    最终值 = A1*0.3 + A2*0.7 或 B1*0.2 + B2*0.8

    通过双线性插值法缩放图片:

    import cv2
    import numpy as np
    img = cv2.imread('../img/zidan.jpg',1)
    imgInfo = img.shape
    print(imgInfo)
    width = imgInfo[0]
    height = imgInfo[1]
    dstHeight = int(height*0.5)
    dstWidth = int(width*0.5)
    newImg = np.zeros((dstWidth,dstHeight,3),np.uint8)
    for i in range(0,dstWidth):
    for j in range(0,dstHeight):
    newWidth = int(i*(width*1.0/dstWidth))
    newHeight = int(j*(height*1.0/dstHeight))
    newImg[i,j] = img[newWidth,newHeight]
    cv2.imshow('newimg',newImg)
    cv2.waitKey(0)

    效果图:

  • 相关阅读:
    pgspider sqlite mysql docker 镜像
    pgspider docker 镜像
    pgspider基于pg 的高性能数据可视化sql 集群引擎
    diesel rust orm 框架试用
    golang 条件编译
    Performance Profiling Zeebe
    bazel 学习一 简单java 项目运行
    一个好用node http keeplive agnet
    gox 简单灵活的golang 跨平台编译工具
    mailhog 作为smtp server mock工具
  • 原文地址:https://www.cnblogs.com/cxxBoo/p/11447558.html
Copyright © 2011-2022 走看看