日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]圖像處理中經常遇到使用當前像素鄰的像素來計算當前像素位置的某些屬性值,這樣就會導致邊界像素處越界訪問,一般有兩種方法解決這種問題:只對不越界的像素進行處理;對圖像邊界進行拓展,本文主要介紹如何使用Op

圖像處理中經常遇到使用當前像素鄰的像素來計算當前像素位置的某些屬性值,這樣就會導致邊界像素處越界訪問,一般有兩種方法解決這種問題:只對不越界的像素進行處理;對圖像邊界進行拓展,本文主要介紹如何使用OpenCV簡單的對邊界進行拓展。


邊界的拓展方式

OpenCV提供了幾種不同的邊界拓展策略:


*?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’


以上內容取自OpenCV的幫助文檔。其中 “|” 表示的是圖像的邊界,連個“|”中間是圖像的內容,最后一個邊界拓展策略還要額外給定一個i值,用于對額外的邊界進行賦值。


邊界拓展

使用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:上一節(jié)中的邊界拓展策略中的一個。

value:當你的邊界策略使用的是BORDER_CONSTANT的時候,此處是指邊界處填寫的常數值。


實例

用一個簡單實例來解釋下如何拓展邊界。


Mat?extendedIm;
copyMakeBorder(?orgIm,?extendedIm,?extRows,?extRows,?extCols,?extCols,?BORDER_REFLECT_101,?Scalar::all(0)?);


在實例中,上下邊界分別拓展extRows行,左右分別拓展extCols列,使用的是BORDER_REFLECT_101,最有一個參數,可以不寫,我這里寫上是為了告訴大家函數可以填寫這些參數。

以下是實驗代碼和結果:


#include#includeusing?namespace?std;
using?namespace?cv;
int?main(int?argc,?char**argv){
	Mat?orgIm?=?imread("theImage.png");
	int?extRows?=?19;
	int?extCols?=?15;	
	Mat?extendedIm;
	copyMakeBorder(?orgIm,?extendedIm,?extRows,?extRows,?extCols,?extCols,?BORDER_REFLECT_101);
	imshow("original?image",?orgIm);
	imshow("extended?image",?extendedIm);
	waitKey();
	return?0;
}



上圖是原始圖像。



上圖是拓展后的圖像。




本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉