国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于區(qū)域生長的圖像分割算法!

這篇具有很好參考價值的文章主要介紹了基于區(qū)域生長的圖像分割算法!。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

圖像分割的目的是將圖像劃分為多個不同的區(qū)域,所以我們可以直接從尋找圖像中的區(qū)域來設(shè)計(jì)分割算法。區(qū)域生長正是一種基于區(qū)域?qū)ふ业膫鹘y(tǒng)圖像分割算法。

區(qū)域生長基本原理

區(qū)域生長(Region Growth)算法是一種基于區(qū)域的傳統(tǒng)圖像分割算法。區(qū)域生長可以根據(jù)預(yù)先定義的生長規(guī)則將像素或者小區(qū)域不斷組合為更大區(qū)域的過程。具體地,區(qū)域生長是從一組初始種子點(diǎn)出發(fā),通過預(yù)先定義的區(qū)域生長規(guī)則,將與種子點(diǎn)性質(zhì)相似的領(lǐng)域像素不斷添加到每個種子點(diǎn)上,并且滿足區(qū)域生長的終止條件時形成最終生長區(qū)域的過程。假設(shè)為待分割的輸入圖像陣列,為一組種子點(diǎn)陣列,其中種子點(diǎn)處位置為1,其他位置為0,并且假設(shè)和具有相同的尺寸。表示在每個像素點(diǎn)的相關(guān)屬性?;?連接的區(qū)域生長算法的流程描述如下:

  • 在種子陣列中找到所有的連通分量,將每個連通分量腐蝕為一個像素,并將腐蝕成功的像素標(biāo)記為1,其他像素標(biāo)記為0.

  • 在坐標(biāo)形成圖像,如果輸入圖像在該點(diǎn)坐標(biāo)處滿足給定的屬性,則令,否則令。

  • 將中為8連通種子點(diǎn)的所有為1的點(diǎn)添加到s中的每個種子點(diǎn)中直至滿足生長結(jié)束條件。

  • 最后在不同區(qū)域標(biāo)記出每個連通分量形成最終的分割圖像。

下面我們通過一個簡單的計(jì)算例子來更加直觀地理解區(qū)域生長算法。

假設(shè)有如圖所示的5×5圖像陣列,選定陣列中最大值9作為初始種子點(diǎn)(圖中橙色像素塊),區(qū)域生長的像素閾值為2,現(xiàn)按照區(qū)域生長算法對該圖像陣列進(jìn)行分割。

基于區(qū)域生長的圖像分割算法!

按照區(qū)域生長閾值2,取值范圍為[7,11],生長后的區(qū)域像素均值為7.8。第一次生長效果如圖2所示,藍(lán)色區(qū)域即第一次生長后的區(qū)域。

基于區(qū)域生長的圖像分割算法!

第一次生長后的區(qū)域均值為7.8,按照生長閾值為2,第二次生長的像素取值范圍應(yīng)為[5.8,9.8],如圖3所示,綠色部分為第二次生長的區(qū)域結(jié)果。

基于區(qū)域生長的圖像分割算法!

第二次生長后的區(qū)域均值為7.1,按照生長閾值為2,第三次生長的像素取值范圍應(yīng)為[5.1,9.1],如圖4所示,黃色部分為第三次生長的區(qū)域結(jié)果。

基于區(qū)域生長的圖像分割算法!

第三次生長后的區(qū)域均值為6.9,按照生長閾值為2,第三次生長的像素取值范圍應(yīng)為[4.9,8.9],周邊已沒有滿足繼續(xù)生長的像素點(diǎn),到此我們停止生長。將生長后的區(qū)域標(biāo)記為1,其他區(qū)域標(biāo)記為0,最終的分割區(qū)域如圖5所示。

基于區(qū)域生長的圖像分割算法!

區(qū)域生長分割示例

給定一張NBA球星科比的圖像(如圖6所示),我們嘗試實(shí)現(xiàn)一個區(qū)域生長圖像分割算法來對該圖像進(jìn)行前景與背景的分割。

基于區(qū)域生長的圖像分割算法!

現(xiàn)嘗試基于C++代碼來實(shí)現(xiàn)一個區(qū)域生長分割算法。按照前述基于8連接的區(qū)域生長算法的流程描述,實(shí)現(xiàn)過程如下代碼所示。

#include <iostream>
#include <opencv2/opencv.hpp>


using namespace std;
using namespace cv;
// 定義區(qū)域生長分割算法
bool RegionGrowing(Mat img, Mat& result, Point2i seed, int threshold) {
  // 將圖像全部設(shè)置為黑
    result = Mat::zeros(img.size(), CV_8UC1); 
    // 設(shè)置種子點(diǎn)范圍條件
    if (seed.x < 0 || seed.y < 0 || seed.y > img.rows - 1 || seed.x > img.cols - 1) {
        return false;
    }
    // 種子點(diǎn)集
    vector<Point2i> seeds; 
    // 壓入初始種子點(diǎn)
    seeds.push_back(seed); 
    // 種子點(diǎn)設(shè)置為白
    result.ptr<uchar>(seed.y)[seed.x] = 255; 
    // 8連接生長方向
    int growDirections[8][2] = { {-1,-1}, {0,-1}, {1,-1}, {-1,0}, {1,0}, {-1,1}, {0,1}, {1,1} }; 


    // 開始生長
    while (!seeds.empty()) {
        // 取出一個種子點(diǎn)作為現(xiàn)在循環(huán)的初始種子點(diǎn)
        Point2i seed_current = seeds.back();
        seeds.pop_back();


        // 遍歷各生長方向的鄰點(diǎn)
        for (int i = 0; i < 8; i++) {
            Point2i neighborPoint = { seed_current.x + growDirections[i][0], seed_current.y + growDirections[i][1] }; // 鄰點(diǎn)
            if (neighborPoint.x < 0 || neighborPoint.y < 0 || neighborPoint.x > img.cols - 1 || neighborPoint.y > img.rows - 1) { // 鄰點(diǎn)超出范圍
                continue;
            }
            if ((result.ptr<uchar>(neighborPoint.y)[neighborPoint.x] == 0) && abs(img.ptr<uchar>(neighborPoint.y)[neighborPoint.x] - img.ptr<uchar>(seed.y)[seed.x]) < threshold) {
                // 設(shè)置為種子點(diǎn)
                result.ptr<uchar>(neighborPoint.y)[neighborPoint.x] = 255; // 設(shè)置為白色
                seeds.push_back(neighborPoint); // 壓入種子集
            }
        }
    }


    return true;
}

基于上述代碼分割后的圖像如圖7所示??梢钥吹?,區(qū)域生長算法基本上能分割出目標(biāo)區(qū)域,但因?yàn)閳D像本身復(fù)雜性,在分割效果上仍有待提升的地方。

基于區(qū)域生長的圖像分割算法!

參考資料:

岡薩雷斯 數(shù)字圖像處理

https://gy23333.github.io/2020/01/18/%E5%9F%BA%E4%BA%8E%E5%8C%BA%E5%9F%9F%E7%9A%84%E5%9B%BE%E5%83%8F%E5%88%86%E5%89%B2%E2%80%94%E2%80%94%E5%8C%BA%E5%9F%9F%E7%94%9F%E9%95%BF/

往期精彩:

《機(jī)器學(xué)習(xí):公式推導(dǎo)與代碼實(shí)現(xiàn)》1-7章PPT下載

《機(jī)器學(xué)習(xí) 公式推導(dǎo)與代碼實(shí)現(xiàn)》隨書PPT示例

?時隔一年!深度學(xué)習(xí)語義分割理論與代碼實(shí)踐指南.pdf第二版來了!

?新書首發(fā) | 《機(jī)器學(xué)習(xí) 公式推導(dǎo)與代碼實(shí)現(xiàn)》正式出版!

《機(jī)器學(xué)習(xí)公式推導(dǎo)與代碼實(shí)現(xiàn)》將會配套PPT和視頻講解!文章來源地址http://www.zghlxwxcb.cn/news/detail-445460.html

到了這里,關(guān)于基于區(qū)域生長的圖像分割算法!的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • PCL 區(qū)域生長分割(C++詳細(xì)過程版)

    ??區(qū)域生長分割是PCL里經(jīng)典的點(diǎn)云聚類分割算法,具體算法原理和實(shí)現(xiàn)代碼見:PCL 區(qū)域生長分割。為充分了解算法實(shí)現(xiàn)的每一個細(xì)節(jié)和有待改進(jìn)的地方,使用C++代碼對算法實(shí)現(xiàn)過程進(jìn)行復(fù)現(xiàn)。 注意: 該算法的實(shí)現(xiàn)過程中,加入多線程可能會得到錯誤的結(jié)果。因此,未進(jìn)行

    2024年02月10日
    瀏覽(18)
  • Open3D 點(diǎn)云分割之區(qū)域生長(Python版本,指定種子點(diǎn))

    點(diǎn)云分割作為許多應(yīng)用的前提,其直接會關(guān)乎到后續(xù)利用點(diǎn)云數(shù)據(jù)進(jìn)行曲面重建、特征提取等處理的效果。區(qū)域生長算法做為一種較為經(jīng)典的聚類分割算法,具有很廣泛的應(yīng)用,算法過程如下所述: 1、首先將按照每個點(diǎn)的曲率值由小到大進(jìn)行排序。 2、選擇曲率值最小的那個

    2024年02月03日
    瀏覽(30)
  • 基于區(qū)域的圖像分割

    基于區(qū)域的圖像分割

    基于區(qū)域的圖像分割是數(shù)字圖像處理中常用的一種方法,它通過將圖像中的像素分配到不同的區(qū)域或?qū)ο髞韺?shí)現(xiàn)圖像分割的目的。相比于基于邊緣或閾值的方法,基于區(qū)域的圖像分割更注重像素之間的相似性和連續(xù)性,能夠更好地捕捉到圖像中不同對象的區(qū)域特征。本文將介

    2024年02月05日
    瀏覽(21)
  • OpenCv案例(九): 基于OpenCvSharp圖像分割提取目標(biāo)區(qū)域和定位

    OpenCv案例(九): 基于OpenCvSharp圖像分割提取目標(biāo)區(qū)域和定位

    以下原圖中,物體連靠在一起,目的是將其分割開,再提取輪廓和定位 原圖:? ?最終效果: 麻煩的地方是,分割開右下角部分,兩個連在一起的目標(biāo)物體,下圖所示:? 基本方法:BoxFilter濾波、二值化、輪廓提取,凸包檢測,圖像的矩 代碼如下: 灰度圖像后圖像二值化:

    2024年02月11日
    瀏覽(21)
  • CloudCompare 二次開發(fā)(6)——插件中拖拽添加Qt窗口(區(qū)域生長算法為例)

    CloudCompare 二次開發(fā)(6)——插件中拖拽添加Qt窗口(區(qū)域生長算法為例)

    本文由CSDN點(diǎn)云俠原創(chuàng),原文鏈接。爬蟲網(wǎng)站自重。 ??手動拖拽的方式搭建Qt對話框界面的制作流程,以PCL中的點(diǎn)云區(qū)域生長算法為例進(jìn)行制作。 1、將 ....pluginsexample 路徑下的 ExamplePlugin 復(fù)制一份并修改名字為 CCPointCloudProcess 。 2、創(chuàng)建窗口UI文件 使用任意Qt工程新建對話

    2023年04月11日
    瀏覽(23)
  • 圖像處理技術(shù):數(shù)字圖像分割 ------ 圖像分割、邊界分割(邊緣檢測)、區(qū)域分割

    圖像處理技術(shù):數(shù)字圖像分割 ------ 圖像分割、邊界分割(邊緣檢測)、區(qū)域分割

    是指根據(jù)灰度、彩色、空間紋理、幾何形狀等特征把圖像劃分 成若干個互不相交的區(qū)域,使得這些特征在同一區(qū)域內(nèi)表現(xiàn)出一致 性或相似性,而在不同區(qū)域間表現(xiàn)出明顯的不同 分割出來的區(qū)域應(yīng)該同時滿足: ?(1)分割出來的圖像區(qū)域的均勻性和連通性。 ??均勻性是指該

    2024年02月04日
    瀏覽(33)
  • 數(shù)字圖像處理:圖像分割——邊緣檢測與區(qū)域分割

    數(shù)字圖像處理:圖像分割——邊緣檢測與區(qū)域分割

    1.圖像分割:根據(jù)圖像的某些局部特征(灰度級、紋理、彩色或統(tǒng)計(jì)特征等)的相似性和互斥性,將圖像分割成若干子區(qū)域,在每個子區(qū)域內(nèi)部具有相似(相同或相近)特性,而相鄰子區(qū)域的特性互斥。所以圖像分割是利用圖像局部特征的相似性和互斥性。 2.圖像分割方法分

    2024年02月05日
    瀏覽(23)
  • 基于Python實(shí)現(xiàn)圖像分割算法

    資源下載地址:https://download.csdn.net/download/sheziqiong/86763995 資源下載地址:https://download.csdn.net/download/sheziqiong/86763995 結(jié)合“Lecture 7 Segmentation”內(nèi)容及參考文獻(xiàn)[1],實(shí)現(xiàn)基于 Graph-based image segmentation 方法(可以參考開源代碼,建議自己實(shí)現(xiàn)) ,通過設(shè)定恰當(dāng)?shù)拈撝祵⒚繌垐D分割

    2024年02月05日
    瀏覽(21)
  • 【圖像分割】傳統(tǒng)分割算法—分水嶺算法(包含基于opencv的實(shí)例展示)

    【圖像分割】傳統(tǒng)分割算法—分水嶺算法(包含基于opencv的實(shí)例展示)

    分水嶺算法將圖像看作地理學(xué)中的地形表面,圖像中的高灰度值區(qū)域被看作山峰,低灰度值區(qū)域被看作山谷。進(jìn)而實(shí)現(xiàn)圖像的分割。 假如我們向“山谷”中注水,水位則會逐漸升高,然后不同山谷的水就會匯集在一起,如果我們阻止來自不同山谷的水匯集,我們需在水流可能

    2024年02月06日
    瀏覽(20)
  • 基于OpenCV的圖像分割(分水嶺算法和GrabCut)

    基于OpenCV的圖像分割(分水嶺算法和GrabCut)

    目錄 一、分水嶺算法 二、GrabCut 參數(shù):? image: 輸入圖像,必須是8位的3通道彩色圖像 marker: 標(biāo)記圖像,32位單通道圖像,它包括種子點(diǎn)信息,使用輪廓信息作為種子點(diǎn)。在進(jìn)行分水嶺算法之前,必須設(shè)置好marker信息,它包含不同區(qū)域的輪廓,每個輪廓有唯一的編號,使用fin

    2024年01月23日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包