Opencv2 氣泡排序實現中值濾波

2021-09-25 02:46:21 字數 994 閱讀 6287

(1)氣泡排序的實現:

①氣泡排序實現容器內元素的全排列:

vectorbubble_sort(vectorvec)

} }return vec;

}

②氣泡排序實現陣列內元素的全排列:

void bubble_sort(int a, int n)

}}

③  氣泡排序提取容器內排序第index的元素值:

應用在中值濾波的實現中時,採用全排列後讀取排序後元素的第index個元素值的方式時,會進行一些不必要的計算,此時在氣泡排序過程中,已排序到index值之後的運算都是不必要的。

因此封裝了乙個通過氣泡排序返回容器中排序第index的元素值的函式。

int bubble_index(vectorv,int index)

} }return v[index-1];

}

(2)中值濾波的實現:

//中值濾波的實現

void medianimage(const mat& image, mat& imagemedian, int sizer, int sizec)

}//2.找出灰度值的中值(索引為index)並賦給當前畫素

//實現1:呼叫全排列函式

//vectorgraysorted=bubble_sort(gray);

- sizer / 2, j - sizec / 2) = graysorted[index];

//實現2:呼叫返回第index元素值函式

imagemedian.at(i - sizer / 2, j - sizec / 2) = bubble_index(gray, index);

} }}

速度較之前封裝的版本有一定的提高,但依然比較慢,其他優化方法正在思考,如果有有效的優化方法會進行更新。

openCV2 角點檢測

文章目錄 一 harris角點檢測基本理論 二 opencv 實現 三 改進的harris角點檢測 四 fast角點檢測 五 參考文獻 六 附錄 資料和原始碼 一 harris角點檢測基本理論 要講清楚東西太多,附錄提供文件詳細說明 1.1 簡略表達 角點 最直觀的印象就是在水平 豎直兩個方向上變化...

opencv2中尋找輪廓

最近想嘗試用opencv做專案,發現需要考慮的細節很多,用商業庫用習慣了,有點不適應,慢慢來吧。上網查了查用opencv做連通域運算,發現都是先尋找輪廓,那就先來學習下輪廓。opencv中尋找輪廓的c 函式是 void findcontours inputoutputarray image outp...

OPENCV 2 資料結構

opencv的資料結構定義於types c.h中,下面對其一一介紹 a.cvrect 矩形類 typedef struct cvrect cvrect x和y表示矩形的起始座標,而width和height則表示矩形的寬和高 其建構函式為 cv inline cvrect cvrect int x,i...