使用Freeman鏈碼提取影像邊界

2021-07-13 17:00:12 字數 864 閱讀 8260

第一篇部落格,還真不知道寫些什麼。恰好最近寫了乙個小功能,還是蠻有用,希望能幫到用得著的朋友,也為以後積累資料吧。

在gis行業中,有時會計算影像的面積,希望提取出影像的邊界,在做影像鑲嵌是還會求取影像的有效範圍等。那麼,針對乙個影像,如何能夠得到它的有效範圍呢?

1)arcgis中有乙個工具,好像是在3d分析工具中的柵格範圍,但是我在使用的時候並沒有成功(也許我還不會玩那個);

2)自己程式設計實現,在gdal中,有乙個函式可以實現柵格向量化,如果想要使用這個提取柵格影像的有效邊界,那麼最好是先二值化,並且要使得影像內部沒有背景值,不然後期修改複雜;

3)使用freeman鏈碼提取出邊界點,用org中的相關函式寫成.shp格式。

在大學的時候使用過freeman鏈碼提取影像邊界,因此,在遇見這個問題的時候很快就找到了思路,也說明現在做的事情,將來的某一天就能幫到自己。

freeman鏈碼我在這不作具體介紹,網上一大把,主要提及一點:如何搜尋影像邊界。

1)按照定義的鏈碼方向,首先初始乙個方向,並定位到影像邊界上的某一點;

2)從初始方向倒退兩個開始搜尋,即如果初始方向為4,那麼就從2開始搜尋;

3)當搜尋到下乙個影像邊界點時結束,把畫素座標加入陣列,以便後續使用,並更改初始方向碼值;

利用gdal庫和org,將之前的畫素座標轉為經緯度座標並寫入shp面。

1)如果影像有效範圍在影像的外接矩形框上,那麼需要注意判斷邊界問題;

2)由於記錄的是畫素的左上角座標,因此,在影像的某些邊界上會出現往裡走了乙個畫素,所以最好根據鏈碼值作相應的調整。這樣會使得提取的邊界更加完美。

3)如果影像較大,那需要分塊讀取,我採取的是三行讀取;

4)假如出現了乙個影象中有不連續的影像,那麼在提取邊界的時候就應該進行判斷。

Freeman鏈碼差分

在看岡薩雷斯的 數字影象處理 matlab版 時,書上好像並沒有說細說這個freeman鏈碼的差分是怎樣計算的,所以自己想了一會,覺得可能是這樣計算的 例如書上舉的例子 第328頁 是4方向碼是10103322,則一階差分是31333030。一階差分中第一位3是這麼來的,鏈碼中第一位1指向鏈碼中第二...

邊界鏈碼 歸一化鏈碼與一階差分鏈碼

鏈碼 又稱為freeman碼 是用曲線起始點的座標和邊界點方向 來描述曲線或邊界的方法,常被用來在影象處理 計算機圖形學 模式識別等領域中表示曲線和區域邊界。它是一種邊界的編碼表示法,將影象中畫素的絕對位置轉換成了相對位置,用邊界方向作為編碼依據,為簡化邊界的描述,一般描述的是邊界點集。常用的鏈碼按...

超級賬本鏈碼

fabric中的智慧型合約稱為 鏈碼 chaincode 鏈碼部署在節點上,採用容器技術形成隔離的執行環境。鏈碼的生命週期管理主要包括鏈碼的安裝 例項化 呼叫和終止等。作為聯盟鏈方案,fabric包含管理成員身份的功能。參與區塊鏈網路成員身份必須是明確的,成員之間知道批次組織身份資訊,每個交易都有明...