精华内容
下载资源
问答
  • cv2.resize()

    万次阅读 多人点赞 2019-09-28 18:48:29
    cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation) 参数解释: InputArray src 输入图片 OutputArray dst 输出图片 Size 输出图片尺寸 fx, fy 沿x轴,y轴的...

    函数原型:

    1

    cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation)

    参数解释:

     

    InputArray src 输入图片
    OutputArray dst 输出图片
    Size 输出图片尺寸
    fx, fy 沿x轴,y轴的缩放系数
    interpolation 插入方式

     

    interpolation 选项所用的插值方法:

     

    INTER_NEAREST

    最近邻插值

    INTER_LINEAR

    双线性插值(默认设置)

    INTER_AREA

    使用像素区域关系进行重采样。

    INTER_CUBIC

    4x4像素邻域的双三次插值

    INTER_LANCZOS4

    8x8像素邻域的Lanczos插值

     

    注意:

    1.输出尺寸格式为(宽,高)

    2.默认的插值方法为:双线性插值

    代码演示:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    import cv2 as cv

      

    # 读入原图片

    img = cv.imread('test.jpg')

    # 打印出图片尺寸

    print(img.shape)

    # 将图片高和宽分别赋值给x,y

    x, y = img.shape[0:2]

      

    # 显示原图

    cv.imshow('OriginalPicture', img)

      

    # 缩放到原来的二分之一,输出尺寸格式为(宽,高)

    img_test1 = cv.resize(img, (int(y / 2), int(x / 2)))

    cv.imshow('resize0', img_test1)

    cv.waitKey()

      

    # 最近邻插值法缩放

    # 缩放到原来的四分之一

    img_test2 = cv.resize(img, (0, 0), fx=0.25, fy=0.25, interpolation=cv.INTER_NEAREST)

    cv.imshow('resize1', img_test2)

    cv.waitKey()

    cv.destroyAllWindows()

    深度学习原理与实战教程: https://edu.51cto.com/sd/b5af5 

    展开全文
  • cv2.resize

    2018-12-10 10:40:00
    import cv2 img = cv2.imread('0_116_99_355_0.jpg') ...# res = cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC) #比例因子:fx=2,fy=2 # 方法二: print(img.shape) height, width = i...
    import cv2
    
    img = cv2.imread('0_116_99_355_0.jpg')
    
    
    # 方法一:
    # res = cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)  #比例因子:fx=2,fy=2
    
    # 方法二:
    print(img.shape)
    height, width = img.shape[:2]
    
    res = cv2.resize(img, (129, 128), interpolation=cv2.INTER_CUBIC)  # dsize=(2*width,2*height) # 新的宽高
    print(res.shape)
    
    while (1):
        cv2.imshow('res', res)
        cv2.imshow('img', img)
    
        if cv2.waitKey(1) & 0XFF == 27:
            break
    cv2.destroyWindow()

    api:http://www.opencv.org.cn/opencvdoc/2.3.2/html/modules/imgproc/doc/geometric_transformations.html?highlight=resize#cv.Resize

    tips: 要注意的是img.shape 返回高宽通道,resize 的时候是宽,高,插值方式。

    转载于:https://www.cnblogs.com/TreeDream/p/10095140.html

    展开全文
  • np.resize与cv2.resize

    2020-08-20 10:13:14
    np.resize与cv2.resize np.resize改变矩阵(图片)大小时,会copy原数组进行填充,所以得到的改变尺寸的图片会失真。eg a=[[1,2],[3,4]] b=np.resize(a,(2,3)) >>b=[[1,2,3],[4,1,2]] 所以不可以使用np....

    np.resize与cv2.resize

    np.resize改变矩阵(图片)大小时,会copy原数组进行填充,所以得到的改变尺寸的图片会失真。eg

    a=[[1,2],[3,4]]
    b=np.resize(a,(2,3))
    >>b=[[1,2,3],[4,1,2]]
    

    所以不可以使用np.resize调整图片大小
    cv2.resize可以正常使用,但是插值方式也会影响生成的效果图,当放大/缩小的图片效果不好时,可以尝试改变插值方式

    展开全文
  • 2.图像缩放:cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None) 3.图像旋转变换矩阵:M=cv2.getRotationMatrix2D(center,angle,scale) 4.图像仿射变换:M=cv2.getAffineTrans.

    目录

     

    1.图像平移:cv2.warpAffine(src,M,dsize,dst=None,flag=None,borderMode=None,borderValue=None)

    2.图像缩放:cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)

    3.图像旋转变换矩阵:M=cv2.getRotationMatrix2D(center,angle,scale)

    4.图像仿射变换:M=cv2.getAffineTransform(src,dst)

    5.透视变换:M=cv2.getPerspectiveTransform(src,dst)


    1.图像平移:cv2.warpAffine(src,M,dsize,dst=None,flag=None,borderMode=None,borderValue=None)

    src为输入图像;M为变换矩阵一般反映平移或旋转的关系,为InputArray类型的2x3的变换矩阵;dsize为输出图像的大小;flags是插值方法,默认值为cv2.INTER_LINEAR表示线性插值,此外还有cv2.INTER_AREA(区域插值),cv2.INTER_NEAREST(最近邻插值),cv2.INTER_CUBIC(三次样条插值),cv2.INTER_LANCZOS4(Lanczos插值),borderMode边界像素模式为int类型;boarderValue是边界填充值,默认情况下为0

    import cv2
    import numpy as np
    img = cv2.imread('img2.png')
    # 构造移动矩阵H
    # 在x轴方向移动多少距离,在y轴方向移动多少距离
    H = np.float32([[1, 0, 50], [0, 1, 25]])
    rows, cols = img.shape[:2]
    print(img.shape)
    print(rows, cols)
    
    # 注意这里rows和cols需要反置,即先列后行
    res = cv2.warpAffine(img, H, (2*cols, 2*rows))  
    cv2.imshow('origin_picture', img)
    cv2.imshow('new_picture', res)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    2.图像缩放:cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)

    src为原图;dsize为输出图像尺寸,与比例因子二选一;fx为沿水平轴的比例因子;fy为沿垂直轴的比例因子;interpolation为插值方法

    img = cv2.imread('img2.png')
    # 方法一:通过设置缩放比例,来对图像进行放大或缩小
    res1 = cv2.resize(img, None, fx=2, fy=2, 
                      interpolation=cv2.INTER_CUBIC)
    height, width = img.shape[:2]
    # 方法二:直接设置图像的大小,不需要缩放因子
    #cv2.INTER_NEAREST(最近邻插值) cv2.INTER_AREA (区域插值) cv2.INTER_CUBIC(三次样条插值) cv2.INTER_LANCZOS4(Lanczos插值)
    
    res2 = cv2.resize(img, (int(0.8*width), int(0.8*height)),interpolation=cv2.INTER_LANCZOS4)
    cv2.imshow('origin_picture', img)

    3.图像旋转变换矩阵:M=cv2.getRotationMatrix2D(center,angle,scale)

    center为图片的旋转中心;angle为旋转角度;scale为缩放比例,其中正值为逆时针,负值为顺时针,通过此操作得到变换矩阵M,再用cv2.warpAffine()进行旋转

    import cv2
    img=cv2.imread(r'D:\Downloads\img2.png',1)
    rows,cols=img.shape[:2]
    #参数1:旋转中心,参数2:旋转角度,参数3:缩放因子
    #参数3正为逆时针,负值为正时针
    M=cv2.getRotationMatrix2D((cols/2,rows/2),45,1)
    print(M)
    #第三个参数是输出图像的尺寸中心
    dst=cv2.warpAffine(img,M,(cols,rows))
    #dst=cv2.warpAffine(img,M,(cols,rows),borderValue=(255,255,255))
    while(1):
        cv2.imshow('img', img)
        cv2.imshow('img1',dst)
        #0xFF==27  ESC
        if cv2.waitKey(1)&0xFF==27:
            break
    cv2.destroyAllWindows()

    4.图像仿射变换:M=cv2.getAffineTransform(src,dst)

    src和dst都是3*2矩阵,分别表示输入的3个点和输出的3个点,由此函数得到变换矩阵M

    import cv2
    import numpy as np
    #读取图片
    src = cv2.imread(r'D:\Downloads\bird.png')
    #获取图像大小
    rows, cols = src.shape[:2]
    #设置图像仿射变换矩阵
    pos1 = np.float32([[50,50], [200,50], [50,200]])
    pos2 = np.float32([[10,100], [200,50], [100,250]])
    M = cv2.getAffineTransform(pos1, pos2)
    print(M)
    #图像仿射变换
    result = cv2.warpAffine(src, M, (2*cols, 2*rows))
    #显示图像
    cv2.imshow("original", src)
    cv2.imshow("result", result)
    #等待显示
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    5.透视变换:M=cv2.getPerspectiveTransform(src,dst)

    透视变换(Perspective Transformation)是将成像投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。src,dst分别为源图像和目标图像中的矩形四点坐标,得到变换矩阵M

    import cv2
    import numpy as np
    #读取图片
    src = cv2.imread(r'D:\Downloads\bird.png')
    #获取图像大小
    rows, cols = src.shape[:2]
    #设置图像透视变换矩阵
    pos1 = np.array([[38,32],[50,32],[38,64],[50,64]],dtype = "float32")
    pos2 = np.array([[19,16],[25,16],[19,32],[25,32]],dtype = "float32")
    M = cv2.getPerspectiveTransform(pos1, pos2)
    #图像透视变换
    result = cv2.warpPerspective(src, M, (cols,rows))
    #显示图像
    cv2.imshow("original", src)
    cv2.imshow("result", result)
    #等待显示
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

     

    展开全文
  • cv2.resize()和transform.resize()的区别

    万次阅读 多人点赞 2019-04-26 16:04:21
    常见的两种图片裁剪方式cv2.resize()和transform.resize(): 1、cv2.resize 通过cv2.resize()裁剪后的图片还是以numpy array的方式保存的, 数值的取值范围是(0~255)。 cv2.resize(src,dsize, dst=None, fx=None...
  • ret = cv2.resize(img, (w_, h_), interpolation=cv2.INTER_NEAREST) 对应的参数指的是(输入图像,输出图像大小,缩放时的插值方式、这里是最近邻插值) 2.cv2.copyMakeBorder的用法 ...
  • import numpy as np import cv2 ...x=cv2.resize(x,(320, 240)) y=np.resize(x,(320,240)) cv2.imshow("a",x) cv2.imshow("b",y) ###显示出来的a和b大小不一样。一个(320,240),一个(240,320)才会一样
  • cv2.resize()和imutil.resize()

    千次阅读 2019-01-20 11:20:35
    一、cv2.resize()  import cv2 img = cv2.imread("image1.png") print(img.shape) dst = cv2.resize(img,(img.shape[1]//2,img.shape[0]//2),interpolation=cv2.INTER_CUBIC) print(dst.shape) cv2....
  • 1. 改变图像的大小-cv2.resize() 函数原型:cv2.resize(src, dst, Size, fx, fy, interpolation) 参数说明:1. src 输入图片 2. dst 输出图片 3.size 输出图片的大小 4. fx、fy:沿水平轴、垂直轴的缩放因子(宽度、...
  • 缩放:cv2.resize() # -*- coding: utf-8 -*- """ Created on Thu May 13 10:12:38 2021 @author: zqq """ import cv2 import os # 1. 读取图片 # 1.1 单张 img1 = cv2.imread("ds_ori/pic/doubleskin
  • 6.opencv调整图像大小的新方法imutils.resize一、openCV 调整图像大小 ( cv2.resize )二、项目结构和代码讲解1.项目结构2.代码讲解3.比较 OpenCV 插值方法4.OpenCV 图像大小调整结果三、代码下载 在本教程中,您将...
  • Python-Opencv中图像融合[ cv2.addWeighted( ) 和 cv2.resize( ) 的应用 ] 在图像处理中,可以将两张图片可以通过cv2.addWeighted( )按权重进行融合【注意:两张图片必须是相同shape才行,这就涉及到用cv2.resize( )...
  • 返回的是三维数组(high, width, 3),当我们需要对图像进行缩放时需要用到cv2.resize()函数: #缩放到原来的二分之一 img= cv.resize(img, (int(width / 2), int(high / 2))) 此时需要传入的形状又是(width, high)...
  • Python-OpenCV之图片缩放(cv2.resize

    万次阅读 多人点赞 2018-10-21 02:43:20
    cv2.resize(InputArray src, OutputArray dst, Size,fx, fy, interpolation) 参数解释: InputArray src 输入图片 OutputArray dst 输出图片 Size 输出图片尺寸 fx, fy 沿x轴,y轴的缩放系数 ...
  • 我写这篇文章目的是记录图片分辨率不变情况下,只调节窗口尺寸,以防失真。 Opencv 读、显示、存操作 cv.imread() # 读入图片 ... cv2.IMREAD_COLOR : 读入彩色图片,任何与透明度相关通道的会被忽视,默认以这种方...
  • 关于cv2.resize中的“resize.cpp:4044: error: -215 ssize.width > 0 && ssize.height > 0 in function cv::resize ”的问题 最近在做breakhis的数据集,从predict切换到train数据集时就报了上面的...
  • cv2使用时间不长,遇到了一些坑。 在使用cv2.imread读取RGB图像时,得到的array的shape是(高,宽,(B,G,R)),...在使用cv2.resize时,第二个参数是输出图形的宽和高,即(宽,高),与其他的又不一样。。。WTF :)
  • Tensorflow中,在训练图片数据之前,需要先对图片进行预处理,读图和裁剪是最基本的两步。常见的的读图何裁剪分别有两种方式,这里小编将和大家分享下这几...一、常见的两种读图方式 io.imread() 和 cv2.imread()1.i...
  • cv2.resize()几个坑

    万次阅读 2019-05-10 21:02:25
    想用cv2.resize()来进行双线性差值,把几个尺度不一样的特征图转换成同一尺度然后进行融合来着,因为是特征图,通道数比较多,不像灰度图或者rgb彩图。打算把每个通道当作一个灰度图那样遍历一遍,于是学习了一下cv2...
  • 1.cv2.add(dog_img, cat_img) # 进行...2.cv2.resize(img, (500, 414)) # 根绝给定的维度进行变化 cv2.resize(img, (0, 0), fx=3, fy=1) 使得图像x轴变化为原来的三倍,y轴不变 参数说明:img表示需要变化的图片...
  • CV2.resize()详解

    千次阅读 2019-01-18 11:28:51
    cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None) scr:原图 dsize:输出图像尺寸 fx:沿水平轴的比例因子 fy:沿垂直轴的比例因子 interpolation:插值方法 例子: im = cv2.resize(im, self....
  • 【Opencv】cv2.resize()

    千次阅读 2019-03-12 14:55:14
    其实cv2.resize最关键的点就是宽高,要区分到底哪个是宽哪个是高? 下面代码中height,width = img.shape[:2],shape得到的高宽,其实就是行列; 下面代码中cv2.resize(img,(2*width,2*height)),这个当中是使用的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,634
精华内容 653
关键字:

cv2.resize