OpenCV copyMakeBorder()来拓展边界

使用OpenCV提供的函数copyMakeBorder()来拓展边界,其原型如下

void  copyMakeBorder( InputArray src,  OutputArray dst,

       int top,  int bottom,  int left,  int right,  int borderType,

       const Scalar& value = Scalar())

 

src:输入的数组。

dst:输出的拓展边界后的数组。

top:在src上边界向上拓展的行数。

bottom:在src下边界向下拓展的行数。

left:在src的左边界向左拓展的列数。

right:在src的右边界向右拓展的列数。

borderType:上一节中的边界拓展策略中的一个。

value:当你的边界策略使用的是BORDER_CONSTANT的时候,此处是指边界处填写的常数值。(

*BORDER_REPLICATE: aaaaaa | abcdefgh | hhhhhhh

* BORDER_REFLECT : fedcba | abcdefgh | hgfedcb

* BORDER_REFLECT_101 : gfedcb | abcdefgh | gfedcba

* BORDER_WRAP : cdefgh | abcdefgh | abcdefg

* BORDER_CONSTANT : iiiiii | abcdefgh | iiiiiii with some specified i

 

  1. #include <iostream>  
  2. #include <opencv2/opencv.hpp>  
  3. using namespace std;  
  4. using namespace cv;  
  5. int main(int argc, char**argv){  
  6.     Mat orgIm = imread("theImage.png");  
  7.     int extRows = 19;  
  8.     int extCols = 15;     
  9.     Mat extendedIm;  
  10.     copyMakeBorder( orgIm, extendedIm, extRows, extRows, extCols, extCols, BORDER_REFLECT_101);  
  11.     imshow("original image", orgIm);  
  12.     imshow("extended image", extendedIm);  
  13.     waitKey();  
  14.     return 0;  
  15. }  

 

 

猜你喜欢

转载自blog.csdn.net/caomin1hao/article/details/81131404
今日推荐