OpenCV学习之旅——copyMakeBorder()函数
2017-09-25 22:03
1061 查看
扩充图像边界:copyMakeBorder()函数
函数原型:C++: void copyMakeBorder(InputArray src, outputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar&value=Scalar() )InputArray src:输入图像
OutputArray dst:输出的图像
int top, int bottom, int left, int right:表示对边界每个方向添加的像素个数,就是边框的粗细程度
int borderType:表示边界的类型
有下面几种类型:此处借鉴
http://blog.csdn.net/qq_18343569/article/details/47809917
borderType:扩充边缘的类型,就是外插的类型,OpenCV中给出以下几种方式
BORDER_REPLICATE 重复: 就是对边界像素进行复制
BORDER_REFLECT 反射:对感兴趣的图像中的像素在两边进行复制例如:fedcba|abcdefgh|hgfedcb 反射
BORDER_REFLECT_101 反射101: 例子:gfedcb|abcdefgh|gfedcba
BORDER_WRAP 外包装:cdefgh|abcdefgh|abcdefg
BORDER_CONSTANT 常量复制:例子:iiiiii|abcdefgh|iiiiiii
const Scalar& value=Scalar() :表示如果边界的类型是 BORDER_CONSTANT ,那么边界的颜色值;
功能:以外插方式自动填充图像边缘,扩大图像,利于边缘处理。
示例代码:
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> #include <tchar.h> using namespace std; using namespace cv; int _tmain(int argc, _TCHAR* argv[]) { Mat image, result; //获得边界的类型 int borderType = BORDER_REPLICATE; //输入字符 image = imread("chengxuyuan.jpg"); if (!image.data) { printf("fail to load image\n"); return -1; } int top = (int)(0.5*image.rows); int bottom = (int)(0.5*image.rows); int left = (int)(0.5*(image.cols)); int right = (int)(0.5*(image.cols)); copyMakeBorder(image, result, top, bottom, left, right, borderType); imshow("显示结果.bmp", result); waitKey(); return 0; }
原图:
效果图:
4000
相关文章推荐
- OpenCV学习十六:copyMakeBorder 边缘处理
- opencv:扩充图像边界—copyMakeBorder()函数
- Opencv中的copyMakeBorder和borderInterpolate以及getRectSubPix函数讲解
- OpenCV滤波之copyMakeBorder和borderInterpolate .
- OpenCV:copyMakeBorder的用法
- OpenCV滤波之copyMakeBorder和borderInterpolate
- opencv3实现图像裁剪和图像填充(cv::copyMakeBorder)
- 在OpenCV中图像边界扩展 copyMakeBorder 的实现
- OpenCV滤波之copyMakeBorder和borderInterpolate
- 在OpenCV中图像边界扩展 copyMakeBorder 的实现
- 在OpenCV中图像边界扩展 copyMakeBorder 的实现
- C++ 图像边界扩充函数copyMakeBorder
- OpenCV编程->图像边界拓展copyMakeBorder
- opencv之边界扩展copyMakeBorder
- 在OpenCV中图像边界扩展 copyMakeBorder 的实现
- 在OpenCV中图像边界扩展 copyMakeBorder 的实现
- 在OpenCV中图像边界扩展 copyMakeBorder 的实现
- OpenCV滤波之copyMakeBorder和borderInterpolate
- OpenCV Tutorial: 卷積邊界處理(copyMakeBorder)
- 在OpenCV中图像边界扩展 copyMakeBorder 的实现