gpt4 book ai didi

opencv - 如何从 BORDER_CONSTANT 选项中获取值

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:23 25 4
gpt4 key购买 nike

我需要使用 BORDER_CONSTANT 选项填充图像,还需要一个标量值,您可以在其中指定填充值,我想知道值的顺序是什么,例如是(上、右、下、左)还是其他顺序。

最佳答案

我假设您正在使用 copyMakeBorder

C++: void copyMakeBorder(InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar& value=Scalar() )

Python: cv2.copyMakeBorder(src, top, bottom, left, right, borderType[, dst[, value]]) → dst

value 中,您指定填充的颜色(当使用 BORDER_CONSTANT 时),它在顶部、底部、左侧和右侧都相同。

value – Border value if borderType==BORDER_CONSTANT.

Mat3b img; // Your original image
...
Mat3b padded1;
copyMakeBorder(img, padded1, 10, 10, 10, 10, BORDER_CONSTANT, Scalar(0,255,0));
// ^^^ ^^^^^^ ^^^^ ^^^^^
// top bottom left right

// Now padded1 has a green border of 10 pixels around the original image.

如果你真的想为顶部、底部等设置不同的填充颜色,你可以这样做:

Mat3b img; // Your original image
...

Mat3b padded2;
copyMakeBorder(img , padded2, 10, 0, 0, 0, BORDER_CONSTANT, Scalar(255,0,0));
copyMakeBorder(padded2, padded2, 0, 10, 0, 0, BORDER_CONSTANT, Scalar(0,255,0));
copyMakeBorder(padded2, padded2, 0, 0, 10, 0, BORDER_CONSTANT, Scalar(0,0,255));
copyMakeBorder(padded2, padded2, 0, 0, 0, 10, BORDER_CONSTANT, Scalar(255,0,255));

// Now padded2 has different padding color in each side.

更新

通常您只想为 CV_8UC1 图像创建一些填充。很简单:

Mat3b img; // Your original image
...

Mat1b gray;
cvtColor(img, gray, COLOR_BGR2GRAY);

// Add a black padding (of 10 pixels) around the image
Mat1b padded3;
copyMakeBorder(gray, padded3, 10, 10, 10, 10, BORDER_CONSTANT, Scalar(0));

关于opencv - 如何从 BORDER_CONSTANT 选项中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31605181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com