欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

OpenCV實現(xiàn)給圖片添加邊框功能

 更新時間:2018年10月24日 10:54:23   作者:凌風探梅  
這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)給圖片添加邊框功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

目標:

基于OpenCV的函數(shù)cv::copyMakeBorder給圖像添加邊框

函數(shù)簡介:

copyMakeBorder( src, dst, top, bottom, left, right, borderType, value );

參數(shù):

src: 原圖像
dst: 目標圖像
top, bottom, left, right: 每一個邊界方向上像素的寬度.在這里使用圖像原始大小的 5% .
borderType:邊框的類型 。當前例子中位純色或者邊界的復制.
value: 如果borderType 設置位 BORDER_CONSTANT, 這個將作為邊框的顏色.

邊框的類型

1)純色邊框

    BORDER_CONSTANT,邊框設置位某種單一的顏色,比如黑色

2)圖像邊界擴展

BORDER_REPLICATE,復制原圖的邊界進行擴展

代碼

/**
 * @file copyMakeBorder_demo.cpp
 * @brief Sample code that shows the functionality of copyMakeBorder
 * @author OpenCV team
 */
 
#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
 
using namespace cv;
 
//![variables]
Mat src, dst;
int top, bottom, left, right;
int borderType;
const char* window_name = "copyMakeBorder Demo";
RNG rng(12345);
//![variables]
 
/**
 * @function main
 */
int main( int, char** argv )
{
 
 int c;
 
 //![load]
 src = imread( argv[1], IMREAD_COLOR ); // Load an image
 
 if( src.empty() )
 {
  printf(" No data entered, please enter the path to an image file \n");
  return -1;
 }
 //![load]
 
 /// Brief how-to for this program
 printf( "\n \t copyMakeBorder Demo: \n" );
 printf( "\t -------------------- \n" );
 printf( " ** Press 'c' to set the border to a random constant value \n");
 printf( " ** Press 'r' to set the border to be replicated \n");
 printf( " ** Press 'ESC' to exit the program \n");
 
 //![create_window]
 namedWindow( window_name, WINDOW_AUTOSIZE );
 //![create_window]
 
 //![init_arguments]
 /// Initialize arguments for the filter
 top = (int) (0.05*src.rows); bottom = (int) (0.05*src.rows);
 left = (int) (0.05*src.cols); right = (int) (0.05*src.cols);
 //![init_arguments]
 
 dst = src;
 imshow( window_name, dst );
 
 for(;;)
  {
   //![check_keypress]
   c = waitKey(500);
 
   if( (char)c == 27 )
   { break; }
   else if( (char)c == 'c' )
   { borderType = BORDER_CONSTANT; }
   else if( (char)c == 'r' )
   { borderType = BORDER_REPLICATE; }
   //![check_keypress]
 
   //![update_value]
   Scalar value( rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255) );
   //![update_value]
 
   //![copymakeborder]
   copyMakeBorder( src, dst, top, bottom, left, right, borderType, value );
   //![copymakeborder]
 
   //![display]
   imshow( window_name, dst );
   //![display]
  }
 
 return 0;
}

效果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

  • C語言實現(xiàn)簡易五子棋小游戲

    C語言實現(xiàn)簡易五子棋小游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單五子棋小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C++類型兼容規(guī)則詳情

    C++類型兼容規(guī)則詳情

    這篇文章主要介紹了C++類型兼容規(guī)則詳情,共有繼承時,任何需要父類對象的地方,都能使用子類對象“替代”,這就是類型兼容規(guī)則,下面一起來了解文章相關內容吧
    2022-03-03
  • C#如何調用原生C++ COM對象詳解

    C#如何調用原生C++ COM對象詳解

    這篇文章主要給大家介紹了C#如何調用原生C++ COM對象,在C++中實現(xiàn)C#的接口。文中通過示例代碼介紹的很詳細,相信對大家的理解和學習會有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。
    2016-12-12
  • C++中棧結構建立與操作詳細解析

    C++中棧結構建立與操作詳細解析

    我們可以把棧理解成一個大倉庫,放在倉庫門口(棧頂)的貨物會優(yōu)先被取出,然后再取出里面的貨物。而從數(shù)據(jù)的邏輯結構來看,棧結構起始就是一種線性結構
    2013-10-10
  • Unity3D實現(xiàn)經(jīng)典小游戲Pacman

    Unity3D實現(xiàn)經(jīng)典小游戲Pacman

    這篇文章主要介紹了基于Unity3D制作一做個經(jīng)典小游戲Pacman,文中的示例代碼講解詳細,對我們學習Unity3D有一定的幫助,感興趣的小伙伴可以了解一下
    2021-12-12
  • C++?數(shù)據(jù)結構超詳細講解單鏈表

    C++?數(shù)據(jù)結構超詳細講解單鏈表

    這篇文章主要介紹了C++數(shù)據(jù)結構之單鏈表,鏈表是由一個個結點鏈結成的。結點包括數(shù)據(jù)域和指針域兩部分,數(shù)據(jù)域用來存儲數(shù)據(jù)元素的信息,指針域用來存儲下一個結點的地址,更詳細內容請需要的小伙伴參考下面文章內容
    2022-03-03
  • C語言深入分析數(shù)組指針和指針數(shù)組的應用

    C語言深入分析數(shù)組指針和指針數(shù)組的應用

    在C語言和C++等語言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來指向若干個字符串,使字符串處理更加方便、靈活
    2022-04-04
  • 素數(shù)判定算法的實現(xiàn)

    素數(shù)判定算法的實現(xiàn)

    這篇文章主要介紹了素數(shù)判定算法的實現(xiàn),素數(shù)判定問題是一個非常常見的問題,本文介紹了常用的幾種判定方法,需要的朋友可以參考下
    2014-08-08
  • EasyC++模板重載

    EasyC++模板重載

    這篇文章主要介紹了C++模板重載,重載的模板的函數(shù)特征,也就是入?yún)⒌臄?shù)量和類型必須有所不同,下面我們講舉例說明此內容,具有一定的參考價值,需要的小伙伴可以參考一下
    2021-12-12
  • C++重載運算符你真的了解嗎

    C++重載運算符你真的了解嗎

    這篇文章主要為大家詳細介紹了C++重載運算符,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評論