日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

copyMakeBorder函数

發布時間:2025/4/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 copyMakeBorder函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

copyMakeBorder函數:

調用方式:

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:表示邊界的類型

有下面幾種類型:

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 ?,那么邊界的顏色值;


opencv代碼:


#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream>using namespace std; using namespace cv;int main() {Mat image, result;//獲得邊界的類型int borderType = BORDER_REPLICATE;//輸入字符int c;image = imread("D:6.jpg");if (!image.data){printf("fail to load image\n");return -1;}//使用說明cout << "使用說明:" << endl;cout << "按鍵c設置邊界為隨機的顏色" << endl;cout << "按鍵r設置邊界為原圖的顏色" << endl;cout << "按鍵按鍵ESC退出程序" << endl;//顏色隨機值Scalar value;//隨機數種子RNG rng(12345);//初始化參數:邊框的粗細int top = (int)(0.05*image.rows);int bottom = (int)(0.05*image.rows);int left = (int)(0.05*image.cols);int right = (int)(0.05*image.cols);result = image;//imshow("顯示結果",result);while (true){c = waitKey(500);if ((char)c == 27){break;}else if ((char)c == 'c'){//用常數添加邊框(255:白色)borderType = BORDER_CONSTANT;}else if ((char)c == 'r'){//復制原圖像的邊界像素borderType = BORDER_REPLICATE;}//設置隨機顏色value = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));//在圖像周圍形成邊界:輸入圖像、輸出圖像(大小為源圖像+邊界)、上、下、左、右、邊界類型、顏色copyMakeBorder(image, result, top, bottom, left, right, borderType, value);imshow("顯示結果", result);}}


實驗結果:





《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的copyMakeBorder函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。