我使用openCV2加载一个灰度图像,然后将其转换为数字阵列. 现在我想用一个“框架”来填充这个数组。然而,我有点麻烦,解剖什么新的手册要我确切地做。我试着在google上搜索填充示例,但没有找到与我的案例相关的示例。在
我当前的代码如下:
import numpy as np
img = cv2.imread('Lena.png', )
imgArray = np.array((img))
imgArray = np.pad(imgArray, pad_width=1,mode='constant' ,constant_values=0)
cv2.imshow('Padded', imgArray)
还有另一个选择np.pad公司名称:
正如您看到的here,您需要提供您想要的轴np.pad. 简单地使用:
只向第三个轴(即RGB通道)添加值,以便您无法再打印图像。在
如引用问题中所述,您需要使用以下参数来编写代码:
^{pr2}$另请参见np.paddocumentation:
这意味着元组的第一个条目用一个“0”填充第一个轴(图像的上下边界)和第二个元组填充第二个轴(左边界和右边界)。在
您不想填充最后一个维度,因为这是存储RGB信息的维度。在
正如你在问题中所说的,你想要一个白色的边框:常量值应该设置为255或1,这取决于你的图像范围。使用0会产生黑色边框。在
{openCV2}查看文档
我的最佳猜测是使用
constant= cv2.copyMakeBorder(img,10,10,10,10,cv2.BORDER_CONSTANT,value=BLUE)
您可以执行以下操作:
从
cv2.imread
的documentation:参数:
filename–要加载的文件的名称。
标志:
标志指定加载图像的颜色类型:
CV_LOAD_IMAGE_ANYDEPTH-如果设置,当输入具有相应深度时返回16位/32位图像,否则将其转换为8位。在
CV_LOAD_IMAGE_COLOR-如果已设置,请始终将图像转换为颜色
CV_LOAD_IMAGE_GRAYSCALE-如果设置,则始终将图像转换为灰度图像
>;0返回3通道彩色图像。 注意在当前的实现中,alpha通道(如果有)将从输出图像中剥离。如果需要alpha通道,请使用负值。在
=0返回灰度图像。在
<;0按原样返回加载的图像(使用alpha通道)。在
使用上述代码,我们得到以下结果:
相关问题 更多 >
编程相关推荐