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

    # 1 load 2 info 3 resize 4 check
    
    import cv2
    
    img = cv2.imread(r"D:PythonCode
    euronimage0.jpg", 1)
    imgInfo = img.shape   # shape (行[height], 列[width])
    print(imgInfo)
    
    height = imgInfo[0]
    width = imgInfo[1]
    mode = imgInfo[2]
    
    # 放大 缩小
    # 等比例缩放/非等比例缩放
    dstHeight = int(height * 0.5)
    dstWidth = int(width * 0.5)
    
    # 最近邻域插值/双线性插值(默认)/像素关系重采样/立方插值
    dst = cv2.resize(img, (dstWidth, dstHeight))
    cv2.imshow('image', dst)
    cv2.waitKey(0)
    

      

    # 最近邻域插值法 原理
    # src 10*20 dst 5*10
    # dst <- src
    # (1, 2) <- (2, 4)
    # dst x 1 -> src x 2 newX
    # newX = x * (src 行/目标 行) newX = 1 * (10 / 5) = 2
    # newY = y * (src 列/目标 列) newY = 2 * (20 / 10) = 4
    # 12.3 -> 12

    # 双线性插值
    # A1 = 20% * 上 + 80% * 下 A2 ...
    # B1 = 30% * 左 + 70% * 右 B2....
    # 1. 最终的点 = A1 * 30% + A2 * 70%
    # 2. 最终的点 = B1 * 20% + B2 * 80%

    # 1 info 2 空白模板 3 xy
    # 最近邻域插值法 算法实现
    import cv2
    import numpy as np
    
    img = cv2.imread(r"D:PythonCode
    euronimage0.jpg", 1)
    imgInfo = img.shape
    height = imgInfo[0]
    width = imgInfo[1]
    dstHeight = int(height/2)
    dstWidth = int(width/2)
    dstImage = np.zeros((dstHeight, dstWidth, 3), np.uint8)
    # uint8是无符号八位整型,表示范围是[0, 255]的整数
    
    for i in range(0, dstHeight):       # 行
        for j in range(0, dstWidth):    # 列
            iNew = int(i*(height*1.0/dstHeight))
            jNew = int(j*(width*1.0/dstWidth))
            dstImage[i, j] = img[iNew, jNew]
    
    cv2.imshow('dst', dstImage)
    cv2.waitKey(0)
    
    
    

      

     
  • 相关阅读:
    Django后台admin的使用
    $(.ajax)的使用
    centos7配置双网卡bond
    vsftpd服务的搭建
    linu重置root密码(CentOS7)
    python内置函数
    元组和字典的魔法
    列表的魔法
    字符串的魔法
    zabbix-get
  • 原文地址:https://www.cnblogs.com/mjn1/p/11215691.html
Copyright © 2011-2022 走看看