图像缩放是计算机视觉问题中最重要的操作之一。有时,用户想放大图像以获得特定对象的更多细节,有时用户需要缩小图像以符合某些标准。
Python中的Opencv缩放图像
要在Python中缩放一个图像,可以使用**cv2.resize()**方法。缩放 图像意味着修改图像的尺寸,可以是只有宽度,只有高度,也可以是两者都有。此外,你可以保留被缩放的图像的长宽比。
要在Python中调整图像的大小或比例,可以使用cv2.resize()函数。
调整图像的大小可以通过很多方式进行。我们将研究演示以下调整大小操作的例子。
- 在保留长宽比的情况下(图像的高度与宽度之比保持不变)。
- 降尺度(减少图像的大小)。
- 升格(增加图像的大小)。
- 在不保留长宽比的同时。
- 只用宽度调整图像的大小(增加或减少图像的宽度,保持高度不变)。
- 只调整图像的高度(增加或减少图像的高度,保持宽度不变)。
- 将图像的大小调整到特定的宽度和高度。
用cv2.resize()缩小图像尺寸
要在Python中把 图像缩小到一半大小,可以使用**cv2.resize()**函数,它把fx和fy值传给0.5。
请看下面的代码例子。
# app.py
import numpy as np
import cv2
img = cv2.imread('data.png', 1)
cv2.imshow('Original', img)
img_half = cv2.resize(img, (0, 0), fx=0.5, fy=0.5)
cv2.imshow('Half Image', img_half)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出
在这个例子中,我们使用resize() 图像来缩放原始图像的一半大小。我们将传入一个值(img, ) ,然后传入绝对大小, 或者(0,0)不设置像素的绝对大小, 然后我们可以选择 传入我们的相对因子 fx=0.5,fy=0.5 。这将输出 在两个维度上都是原图一半大小的图像 。
用cv2.resize()提升图像大小
要在Python中使用opencv 放大 图像,可以使用cv2.resize()方法。cv2.resize()方法可以接受fx和fy值为1.5。
# app.py
import numpy as np
import cv2
img = cv2.imread('data.png', 1)
cv2.imshow('Original', img)
img_scale_up = cv2.resize(img, (0, 0), fx=1.5, fy=1.5)
cv2.imshow('Upscaled Image', img_scale_up)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出
如何在Python中拉伸图像
要在Python中拉伸 图像,使用**cv2.resize()**方法并在缩放图像时传递明确的尺寸。
# app.py
import numpy as np
import cv2
img = cv2.imread('data.png', 1)
cv2.imshow('Original', img)
img_stretch = cv2.resize(img, (600, 600))
cv2.imshow('Stretched Image', img_stretch)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出
你可以看到右边的图像被拉伸到了(600, 6000)的尺寸。
缩放时设置插值模式
要在缩放时设置一个插值模式,请传递插值参数。我们将使用最近的插值模式而不是默认模式。
# app.py
import numpy as np
import cv2
img = cv2.imread('data.png', 1)
cv2.imshow('Original', img)
img_inter = cv2.resize(img, (600, 600), interpolation=cv2.INTER_NEAREST)
cv2.imshow('Nearest Interpolated Image', img_inter)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出
在Python中水平缩放图像
要使用OpenCV水平缩放图像,只需沿X轴或水平轴缩放图像,并保持图像的高度不变。
# app.py
import numpy as np
import cv2
img = cv2.imread('data.png', 1)
cv2.imshow('Original', img)
new_width = 300
dim_size = (new_width, img.shape[0])
horizon_img = cv2.resize(img, dim_size, interpolation=cv2.INTER_AREA)
cv2.imshow('Horizontal Scaled Image', horizon_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出
在Python中垂直缩放图像
使用OpenCV垂直缩放图像,只沿Y轴或垂直轴缩放图像,并保持图像的宽度不变。
# app.py
import numpy as np
import cv2
img = cv2.imread('data.png', 1)
cv2.imshow('Original', img)
new_height = 600
dim_size = (new_height, img.shape[1])
horizon_img = cv2.resize(img, dim_size, interpolation=cv2.INTER_AREA)
cv2.imshow('Vertically Scaled Image', horizon_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出
结论
要在Python中缩放图像,可以使用cv2.resize()方法。我们看到的情况是,我们可以保留长宽比并改变尺寸,或者不保留它。我们已经在水平和垂直方向上缩放了图像。这就是Python中缩放图像的内容。
相关帖子
The postOpencv scale image:如何在Python中缩放图像首次出现在AppDividend上。


