CV_EXPORTS_W void copyMakeBorder(InputArray src, OutputArray dst,
int top, int bottom, int left, int right,
int borderType, const Scalar& value = Scalar() );
这是源代码:
主要注意的是:top,bottom就是上方有多少像素,下方有多少边界(以像素为单位计算的),left,right相同的道理。
测试程序:
#include <iostream>
#include <opencv2/opencv.hpp>
#include <sstream>
using namespace std;
using namespace cv;
int main()
{
string filename = "C:/Users/Administrator/Desktop/标准测试图片/Fig0646(a)(lenna_original_RGB).tif";
Mat img = imread(filename, IMREAD_COLOR);
if (img.empty())
{
return -1;
}
Mat ConstBorder, ReplicateBorder, WarpBoder, ReflectBorder, Reflect101Border;
copyMakeBorder(img, ConstBorder, 20, 20, 20, 20,BORDER_CONSTANT,Scalar(0,255,0));//最后一个参数仅仅对BORDER_CONSTANT有意义
copyMakeBorder(img, ReplicateBorder, 20, 20, 20, 20, BORDER_REPLICATE);
copyMakeBorder(img, WarpBoder, 20, 20, 20, 20, BORDER_WRAP);
copyMakeBorder(img, ReflectBorder, 20, 20, 20, 20, BORDER_REFLECT);
copyMakeBorder(img, Reflect101Border, 20, 20, 20, 20, BORDER_REFLECT101);//这个是默认值
imshow("Image", img);
imshow("Constant Border", ConstBorder);
imshow("replicate border", ReplicateBorder);
imshow("Warp Border", WarpBoder);
imshow("Reflect Border", ReflectBorder);
waitKey(0);
return 0;
}
1万+

被折叠的 条评论
为什么被折叠?



