opencv-python库 cv2边界填充&resize图片
opencv
OpenCV: 开源计算机视觉库
项目地址:https://gitcode.com/gh_mirrors/opencv31/opencv
免费下载资源
·
边界填充
在OpenCV中,边界填充(Border Padding)是指在图像周围添加额外的像素,以扩展图像的尺寸或满足某些算法(如卷积)的要求。OpenCV提供了cv2.copyMakeBorder()函数来进行边界填充。
cv2.copyMakeBorder()函数的语法如下:
cv2.copyMakeBorder(src, top, bottom, left, right, borderType, value=None)
参数说明:
- src:源图像。
- top, bottom, left, right:分别表示在图像的顶部、底部、左侧和右侧添加的像素数。
- borderType:边界类型,决定了如何填充边界像素。OpenCV提供了以下几种边界类型:
- cv2.BORDER_CONSTANT:使用常数值填充边界。
- cv2.BORDER_REFLECT:边界像素是源图像边界像素的镜像反射。
- cv2.BORDER_REFLECT_101或cv2.BORDER_DEFAULT:与cv2.BORDER_REFLECT类似,但稍有不同。
- cv2.BORDER_REPLICATE:使用源图像边界像素的值填充边界。
- cv2.BORDER_WRAP:将源图像边界像素的值进行环绕填充。
value:当borderType为cv2.BORDER_CONSTANT时,需要指定填充的常数值。
下面是一个使用cv2.copyMakeBorder()进行边界填充的示例:
import cv2
# 读取图像
image = cv2.imread('path_to_your_image.jpg')
# 定义边界宽度和类型
top, bottom, left, right = 50, 50, 50, 50
border_type = cv2.BORDER_CONSTANT
value = [0, 0, 0] # 黑色填充,BGR格式
# 进行边界填充
padded_image = cv2.copyMakeBorder(image, top, bottom, left, right, border_type, value)
# 显示填充后的图像
cv2.imshow('Padded Image', padded_image)
# 等待按键并关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
在这个示例中,我们在图像的四个方向上都添加了50个像素的黑色边界。你可以根据需要调整边界宽度、边界类型和填充值。边界填充在图像处理中常用于准备图像数据以进行卷积、池化等操作,或者在图像拼接、图像扩展等场景中也非常有用。
改变图片大小
在OpenCV(cv2)中,cv2.resize() 函数用于调整图像的尺寸。这个函数可以增大或减小图像的宽度和高度,并且可以选择不同的插值方法来决定如何计算新的像素值。
下面是 cv2.resize() 函数的基本语法:
cv2.resize(src, dsize, fx=None, fy=None, interpolation=cv2.INTER_LINEAR)
参数说明:
- src:输入图像。
- dsize:输出图像所需的尺寸,表示为 (width, height) 的元组。如果设置为 None,则可以使用 fx 和 * fy 参数来指定缩放因子。
- fx:水平轴的缩放因子。如果为 None,则根据 dsize.width 和原始图像的宽度计算。
- fy:垂直轴的缩放因子。如果为 None,则根据 dsize.height 和原始图像的高度计算。
- interpolation:插值方法,决定如何计算新的像素值。常用的插值方法包括:
- cv2.INTER_NEAREST:最近邻插值。
- cv2.INTER_LINEAR:双线性插值(默认)。
- cv2.INTER_CUBIC:双三次插值。
- cv2.INTER_AREA:像素区域关系插值(用于缩小图像)。
- cv2.INTER_LANCZOS4:Lanczos插值。
下面是一个使用 cv2.resize() 调整图像尺寸的例子:
import cv2
# 读取图像
image = cv2.imread('path_to_your_image.jpg')
# 定义新的尺寸
new_size = (800, 600)
# 使用 cv2.resize() 调整图像尺寸
resized_image = cv2.resize(image, new_size, interpolation=cv2.INTER_LINEAR)
# 显示原始图像和调整尺寸后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Resized Image', resized_image)
# 等待按键并关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
在这个例子中,cv2.resize() 函数将原始图像的尺寸调整为 800x600 像素,并使用双线性插值(cv2.INTER_LINEAR)来计算新的像素值。你可以根据需要调整输出图像的尺寸和插值方法。
GitHub 加速计划 / opencv31 / opencv
77.37 K
55.71 K
下载
OpenCV: 开源计算机视觉库
最近提交(Master分支:2 个月前 )
c3747a68
Added Universal Windows Package build to CI. 1 天前
9b635da5 - 1 天前
更多推荐
已为社区贡献10条内容
所有评论(0)