本發(fā)明涉及河口海岸科學(xué)、港口及航道工程等應(yīng)用領(lǐng)域,具體地說(shuō)是一種掃描紙質(zhì)海圖水深點(diǎn)自動(dòng)矢量化及信息提取的改進(jìn)方法。
背景技術(shù):
海圖是精確測(cè)繪海洋水域和沿岸地物信息的專(zhuān)門(mén)地圖形式,主要內(nèi)容包括:岸線、島嶼、礁石、水深、航標(biāo)和無(wú)線電導(dǎo)航臺(tái)等,是航海必不可少的參考數(shù)據(jù)。同時(shí),也是河口海岸科學(xué)研究,海岸工程、港口及航道工程應(yīng)用獲取基礎(chǔ)數(shù)據(jù)的重要數(shù)據(jù)源,在航海、河口海岸及海洋科學(xué)研究領(lǐng)域有著廣泛的應(yīng)用。長(zhǎng)期以來(lái),人們只能夠從有關(guān)部門(mén)購(gòu)買(mǎi)紙質(zhì)海圖,再掃描成數(shù)字化的圖像通過(guò)手工矢量化的方式將其轉(zhuǎn)變?yōu)楸阌谟?jì)算機(jī)處理的形式加以應(yīng)用。盡管近些年已經(jīng)可以直接獲得矢量格式的海圖,但歷史上積存的大量紙質(zhì)海圖對(duì)于認(rèn)識(shí)近岸海洋環(huán)境的發(fā)展演變是不可替代的數(shù)據(jù)源,在科研和工程應(yīng)用中具有重要意義。每張海圖上都有數(shù)以千計(jì)的點(diǎn)要素、線要素信息及大量的其它信息,常規(guī)的手工矢量化方式需要通過(guò)不斷重復(fù)性的勞動(dòng)來(lái)完成,工作極其枯燥乏味,而且強(qiáng)度大、效率低、易出錯(cuò)、一致性差,極大地制約了紙質(zhì)海圖在科研和工程領(lǐng)域的應(yīng)用。因此,迫切需要提高掃描紙質(zhì)海圖矢量化的效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明根據(jù)海圖制圖規(guī)范,提出一種掃描紙質(zhì)海圖水深點(diǎn)自動(dòng)矢量化及信息提取的改進(jìn)方法,實(shí)現(xiàn)了海圖水深點(diǎn)要素自動(dòng)精確定位和矢量化、水深數(shù)據(jù)自動(dòng)提取的功能,以提升紙質(zhì)海圖矢量化的效率,挖掘歷史海圖數(shù)據(jù)的價(jià)值,為科研和工程應(yīng)用提供便利。
本發(fā)明的技術(shù)方案是:
一種掃描紙質(zhì)海圖水深點(diǎn)自動(dòng)矢量化及信息提取的改進(jìn)方法,它包括以下步驟:
s1、掃描紙質(zhì)海圖;
s2、對(duì)掃描的海圖圖像文件進(jìn)行幾何校正(海圖屬于地理數(shù)據(jù)的一種,而地理數(shù)據(jù)要與實(shí)際空間位置對(duì)應(yīng)起來(lái)才有意義,利用掃描儀掃描進(jìn)電腦之后僅僅是一個(gè)普通的圖片,因此在使用之前需要對(duì)其進(jìn)行幾何校正);創(chuàng)建點(diǎn)矢量文件,文件參考坐標(biāo)系與已校正的掃描海圖圖像文件一致;
s3、框選海圖圖像中任一包含單個(gè)或多個(gè)水深點(diǎn)的圖像區(qū)域,并獲取框選的圖像區(qū)域左上角的空間坐標(biāo)(x,y)及x、y方向的像元大小sx、sy;
s4、讀取框選區(qū)域的圖像數(shù)據(jù),識(shí)別區(qū)域中的數(shù)字,將識(shí)別結(jié)果中多個(gè)數(shù)字序列合并為1個(gè)數(shù)字序列numstr,該數(shù)字序列中有n個(gè)數(shù)字,m為序列中的數(shù)字索引,m=0,...,n-1,獲得數(shù)字序列以及數(shù)字序列中各數(shù)字上邊到框頂邊的頂邊距離top、下邊到框頂邊的底邊距離bottom、左邊到框左邊的左邊距離left、右邊到框左邊的右邊距離right;
s5、聲明字符變量depstr用來(lái)存放提取的單個(gè)水深點(diǎn)數(shù)字序列,并將數(shù)字序列numstr中第一個(gè)數(shù)字即numstr0賦值給depstr,同時(shí)獲取其左上角的坐標(biāo)位置(x,y);(depstr是一個(gè)臨時(shí)變量,用來(lái)存儲(chǔ)通過(guò)判斷從數(shù)字序列中分離得到的單個(gè)水深點(diǎn)讀數(shù),每得到一個(gè)完整的水深點(diǎn)讀數(shù),depstr就被轉(zhuǎn)換為數(shù)值型并存入一個(gè)用來(lái)存儲(chǔ)所選全部水深點(diǎn)讀數(shù)的數(shù)組變量,然后將被重新賦值用來(lái)存儲(chǔ)下一個(gè)水深點(diǎn)讀數(shù));
s6、判斷數(shù)字序列numstr是否只包含一個(gè)數(shù)字:
如果是一個(gè)數(shù)字,則僅有一個(gè)水深點(diǎn)且數(shù)值為1位整數(shù),將depstr轉(zhuǎn)變?yōu)閿?shù)值型即得到正確的水深點(diǎn)讀數(shù),同時(shí)獲取其寬度w和高度h;
如果包含多于一個(gè)數(shù)字,則依次將numstrm-1與numstrm的空間位置進(jìn)行比較,m=1,...,n-1,直到所有數(shù)字比較完畢結(jié)束,得到所有水深點(diǎn)的正確讀數(shù),獲取其整數(shù)數(shù)字的寬度w和高度h;
s7、依次計(jì)算各個(gè)水深點(diǎn)的空間坐標(biāo);
s8、根據(jù)所獲取的水深點(diǎn)空間坐標(biāo)在步驟s2創(chuàng)建的點(diǎn)矢量文件中生成點(diǎn)要素并將水深數(shù)據(jù)寫(xiě)入屬性表,在圖上顯示獲取的水深讀數(shù)和空間位置以便判斷正確與否;
s9、目視判斷所獲取的水深點(diǎn)讀數(shù)和空間位置是否正確,若不正確,進(jìn)行修正,若正確,則重復(fù)s2至s9步,完成整幅海圖的矢量化。
進(jìn)一步地,步驟s2中,采用gis軟件工具進(jìn)行幾何校正,如arcgis。
進(jìn)一步地,步驟s4中,采用ocr引擎識(shí)別所選圖像區(qū)域中的數(shù)字。
進(jìn)一步地,步驟s6中,空間位置比較步驟具體為:
如果numstrm-1與numstrm的左邊距離left滿(mǎn)足下述情況,則進(jìn)行相應(yīng)處理:
c1、abs(leftm-leftm-1)<20且abs(topm-topm-1)<5,則numstrm為該水深點(diǎn)的一個(gè)整數(shù)位數(shù)字,將numstrm連接到depstr:(字符串連接,例如,字符串變量str現(xiàn)在=“1”,把一個(gè)新的字符串“6”連接到str,則str就變成了“16”;再把一個(gè)新的字符串“3”連接到str,則str就變成了“163”。因?yàn)檫x了多個(gè)水深點(diǎn),ocr識(shí)別后結(jié)果可能比較亂,一個(gè)水深點(diǎn)的數(shù)可能識(shí)別成兩個(gè)對(duì)象,也可能多個(gè)水深點(diǎn)的數(shù)字識(shí)別成一個(gè)對(duì)象,所以首先把識(shí)別出的所有數(shù)字合成為一個(gè)水深點(diǎn)序列,然后通過(guò)這里的算法來(lái)把各個(gè)水深點(diǎn)正確分開(kāi)。這里depstr是用來(lái)存放分開(kāi)后的單個(gè)水深點(diǎn)數(shù)值的變量。)
進(jìn)而,判斷numstrm是否為numstr的最后一個(gè)數(shù)字,即判斷m=n-1是否成立,如果成立,則depstr為該水深點(diǎn)的完整數(shù)字序列,且無(wú)小數(shù)位,將depstr轉(zhuǎn)變?yōu)閿?shù)值型即得到正確的水深點(diǎn)讀數(shù),同時(shí)獲取其寬度w和高度h,比較結(jié)束,否則繼續(xù)比較;
c2、abs(leftm-leftm-1)<20且5<abs(topm-topm-1)<15,則numstrm為小數(shù)位,將numstrm連接到depstr,depstr作為該水深點(diǎn)的完整數(shù)字序列,將depstr轉(zhuǎn)變?yōu)閿?shù)值型并除以10即得到正確的水深點(diǎn)讀數(shù),同時(shí)獲取其整數(shù)位寬度w和高度h;
判斷m<n-1是否成立,如果成立,則對(duì)depstr重新賦值為numstrm+1,并令m=m+1,同時(shí)獲取numstrm+1的坐標(biāo)位置,否則繼續(xù)比較;
進(jìn)而,判斷numstrm是否為numstr的最后一個(gè)數(shù)字,即判斷m=n-1是否成立,如果成立,則depstr為該水深點(diǎn)的完整數(shù)字序列且數(shù)值為1位整數(shù),將depstr轉(zhuǎn)變?yōu)閿?shù)值型即得到正確的水深點(diǎn)讀數(shù),同時(shí)獲取其寬度w和高度h,比較結(jié)束,否則繼續(xù)比較;
c3、如果不滿(mǎn)足c1、c2的兩個(gè)初始判斷條件,則depstr為該水深點(diǎn)的完整數(shù)字序列,且無(wú)小數(shù)位,將depstr轉(zhuǎn)變?yōu)閿?shù)值型即得到正確的水深點(diǎn)讀數(shù),同時(shí)獲取其寬度w和高度h,獲取numstrm的坐標(biāo)位置,對(duì)depstr重新賦值為numstrm;
進(jìn)而,判斷numstrm是否為numstr的最后一個(gè)數(shù)字,即判斷m=n-1是否成立,如果成立,則depstr為該水深點(diǎn)的完整數(shù)字序列,且無(wú)小數(shù)位,將depstr轉(zhuǎn)變?yōu)閿?shù)值型即得到正確的水深點(diǎn)讀數(shù),獲取其寬度w和高度h,比較結(jié)束,否則繼續(xù)比較。
進(jìn)一步地,獲取寬度w和高度h時(shí),采用下述步驟:
若存在小數(shù)位,寬度w通過(guò)數(shù)字序列中倒數(shù)第二個(gè)數(shù)字的右邊距離right減去第一個(gè)數(shù)字的左邊距離left得到寬度w,高度h通過(guò)排除數(shù)字序列最后一個(gè)數(shù)字之后的全部數(shù)字中最大底邊距離bottom減去最小頂邊距離top得到;
若不存在小數(shù)位,寬度w通過(guò)數(shù)字序列中最后一個(gè)數(shù)字的右邊距離right減去第一個(gè)數(shù)字的左邊距離left得到,高度h通過(guò)數(shù)字序列中所有數(shù)字中最大底邊距離bottom減去最小頂邊距離top得到。
進(jìn)一步地,步驟s7具體包括:
s7.1、首先根據(jù)數(shù)字識(shí)別結(jié)果獲取數(shù)字序列第一個(gè)數(shù)字左上角在所選圖像區(qū)域中的坐標(biāo)(x,y);
s7.2、采用下述公式計(jì)算整數(shù)位中心點(diǎn)在整幅海圖中的坐標(biāo)(cx,cy),即水深點(diǎn)的空間坐標(biāo):
cx=x+(x+w/2)×sx
cy=y(tǒng)-(y+h/2)×sy
其中:x,y表示框選的圖像區(qū)域左上角的空間坐標(biāo);x,y表示數(shù)字序列第一個(gè)數(shù)字左上角在所選圖像區(qū)域中的坐標(biāo),sx、sy表示x、y方向的像元大小,w表示水深點(diǎn)數(shù)值整數(shù)位寬度,h表示水深點(diǎn)數(shù)值整數(shù)位高度。
進(jìn)一步地,步驟s2中,事先依照幾何校正后的海圖數(shù)字格式創(chuàng)建的0至9十個(gè)數(shù)字模板圖像。
進(jìn)一步地,步驟s9中,修正步驟為:
s9.1、用戶(hù)在地圖窗口中點(diǎn)擊待修正的水深點(diǎn),獲取用戶(hù)點(diǎn)擊位置的空間坐標(biāo),比較用戶(hù)點(diǎn)擊位置的空間坐標(biāo)與所有水深點(diǎn)的空間坐標(biāo)之間的距離,距離最小者為待修正的水深點(diǎn);
s9.2、操作人員手動(dòng)錄入水深點(diǎn)正確讀數(shù),根據(jù)所錄入數(shù)字整數(shù)位,從0至9數(shù)字模板中讀取相應(yīng)的數(shù)字,若整數(shù)位只有1位只需讀取其中一個(gè)數(shù)字模板圖像,否則需要讀取相應(yīng)位數(shù)的數(shù)字模板圖像,并合成為一個(gè)圖像,獲取整數(shù)位的寬度w和高度h;
s9.3、分別對(duì)所選圖像區(qū)域和前述步驟獲取的數(shù)字模板圖像執(zhí)行傅里葉變換得到各自的頻譜圖;
s9.4、對(duì)兩個(gè)頻譜圖執(zhí)行相關(guān)操作(correlation),然后對(duì)相關(guān)操作(correlation)所得到的圖像執(zhí)行傅里葉逆變換,在用戶(hù)點(diǎn)擊位置附近搜索極大值點(diǎn)(x,y)即為待修正水深點(diǎn)整數(shù)位左上角在所選圖像區(qū)域中的坐標(biāo)(x,y);
s9.5、采用下述公式計(jì)算整數(shù)位中心點(diǎn)在整幅海圖中的坐標(biāo)(cx,cy),即水深點(diǎn)的空間坐標(biāo):
cx=x+(x+w/2)×sx
cy=y(tǒng)-(y+h/2)×sy
其中:x,y表示框選的圖像區(qū)域左上角的空間坐標(biāo);x,y表示數(shù)字序列第一個(gè)數(shù)字左上角在所選圖像區(qū)域中的坐標(biāo),sx、sy表示x、y方向的像元大小,w表示水深點(diǎn)數(shù)值整數(shù)位寬度,h表示水深點(diǎn)數(shù)值整數(shù)位高度;
s9.6、根據(jù)計(jì)算得到的(cx,cy)和操作人員錄入的水深點(diǎn)讀數(shù),修改點(diǎn)矢量文件中對(duì)應(yīng)的記錄。
本發(fā)明的有益效果:
本發(fā)明能夠大幅度提高海圖水深點(diǎn)矢量化工作的效率。對(duì)于一幅1:150,000的海圖,一個(gè)熟練的矢量化操作員通常需要半天至一天的不間斷工作方能完成全部水深點(diǎn)的矢量化,利用本方法僅需要30分鐘至1小時(shí)即可實(shí)現(xiàn),顯著提高了識(shí)別的效率。
附圖說(shuō)明
圖1是本發(fā)明的流程圖。
圖2是局部海圖。
其中:數(shù)字即水深點(diǎn),點(diǎn)的位置在整數(shù)位的中心,有多于1位的整數(shù)位,也有不帶小數(shù)位的,所有小數(shù)位只有1位。
圖3是數(shù)字在框選圖像區(qū)域中的位置示意圖。
圖4是同時(shí)獲取多個(gè)水深點(diǎn)讀數(shù)和坐標(biāo)算法流程圖。
其中:numstr為數(shù)字序列,numstrm為數(shù)字序列中第m個(gè)數(shù)字,leftm、topm分別為第m個(gè)數(shù)字的left和top數(shù)值;depstr為單個(gè)水深點(diǎn)的數(shù)字收集器,dep為數(shù)值型水深點(diǎn)變量、w、h分別為單個(gè)水深點(diǎn)整數(shù)位的寬度和高度,coord為水深點(diǎn)左上角坐標(biāo)。abs為絕對(duì)值操作:depstr+=numstr_為連接字符串操作:depstr→dep我字符串轉(zhuǎn)數(shù)值型操作。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。
如圖1所示,一種掃描紙質(zhì)海圖水深點(diǎn)自動(dòng)矢量化及信息提取的改進(jìn)方法,它包括以下步驟:
s1、掃描紙質(zhì)海圖;
s2、對(duì)掃描的海圖圖像文件進(jìn)行幾何校正(采用gis軟件工具進(jìn)行幾何校正,如arcgis)(海圖屬于地理數(shù)據(jù)的一種,而地理數(shù)據(jù)要與實(shí)際空間位置對(duì)應(yīng)起來(lái)才有意義,利用掃描儀掃描進(jìn)電腦之后僅僅是一個(gè)普通的圖片,因此在使用之前需要對(duì)其進(jìn)行幾何校正);創(chuàng)建點(diǎn)矢量文件,文件參考坐標(biāo)系與已校正的掃描海圖圖像文件一致,事先依照幾何校正后的海圖數(shù)字格式創(chuàng)建的0至9十個(gè)數(shù)字模板圖像。
s3、框選海圖圖像中任一包含單個(gè)或多個(gè)水深點(diǎn)的圖像區(qū)域,并獲取框選的圖像區(qū)域左上角的空間坐標(biāo)(x,y)及x、y方向的像元大小sx、sy;
s4、讀取框選區(qū)域的圖像數(shù)據(jù),識(shí)別區(qū)域中的數(shù)字,將識(shí)別結(jié)果中多個(gè)數(shù)字序列合并為1個(gè)數(shù)字序列numstr,該數(shù)字序列中有n個(gè)數(shù)字,m為序列中的數(shù)字索引,m=0,...,n-1,獲得數(shù)字序列以及數(shù)字序列中各數(shù)字上邊到框頂邊的頂邊距離top、下邊到框頂邊的底邊距離bottom、左邊到框左邊的左邊距離left、右邊到框左邊的右邊距離right;
s5、聲明字符變量depstr用來(lái)存放提取的單個(gè)水深點(diǎn)數(shù)字序列,并將數(shù)字序列numstr中第一個(gè)數(shù)字即numstr0賦值給depstr,同時(shí)獲取其左上角的坐標(biāo)位置(x,y);
s6、判斷數(shù)字序列numstr是否只包含一個(gè)數(shù)字:
如果是一個(gè)數(shù)字,則僅有一個(gè)水深點(diǎn)且數(shù)值為1位整數(shù),將depstr轉(zhuǎn)變?yōu)閿?shù)值型即得到正確的水深點(diǎn)讀數(shù),同時(shí)獲取其寬度w和高度h;
如果包含多于一個(gè)數(shù)字,則依次將numstrm-1與numstrm的空間位置進(jìn)行比較,m=1,...,n-1,直到所有數(shù)字比較完畢結(jié)束,得到所有水深點(diǎn)的正確讀數(shù),獲取其整數(shù)數(shù)字的寬度w和高度h,采用下述步驟:
若存在小數(shù)位,寬度w通過(guò)數(shù)字序列中倒數(shù)第二個(gè)數(shù)字的右邊距離right減去第一個(gè)數(shù)字的左邊距離left得到寬度w,高度h通過(guò)排除數(shù)字序列最后一個(gè)數(shù)字之后的全部數(shù)字中最大底邊距離bottom減去最小頂邊距離top得到;
若不存在小數(shù)位,寬度w通過(guò)數(shù)字序列中最后一個(gè)數(shù)字的右邊距離right減去第一個(gè)數(shù)字的左邊距離left得到,高度h通過(guò)數(shù)字序列中所有數(shù)字中最大底邊距離bottom減去最小頂邊距離top得到。
其中,空間位置比較步驟具體為:
如果numstrm-1與numstrm的左邊距離left滿(mǎn)足下述情況,則進(jìn)行相應(yīng)處理:
c1、abs(leftm-leftm-1)<20且abs(topm-topm-1)<5,則numstrm為該水深點(diǎn)的一個(gè)整數(shù)位數(shù)字,將numstrm連接到depstr:(字符串連接,例如,字符串變量str現(xiàn)在=“1”,把一個(gè)新的字符串“6”連接到str,則str就變成了“16”;再把一個(gè)新的字符串“3”連接到str,則str就變成了“163”。因?yàn)檫x了多個(gè)水深點(diǎn),ocr識(shí)別后結(jié)果可能比較亂,一個(gè)水深點(diǎn)的數(shù)可能識(shí)別成兩個(gè)對(duì)象,有可能多個(gè)水深點(diǎn)的數(shù)字識(shí)別成一個(gè)對(duì)象,所以首先把識(shí)別出的所有數(shù)字合成為一個(gè)水深點(diǎn)序列,然后通過(guò)這里的算法來(lái)把各個(gè)水深點(diǎn)正確分開(kāi)。這里depstr是用來(lái)存放分開(kāi)后的單個(gè)水深點(diǎn)數(shù)值的變量。)
進(jìn)而,判斷numstrm是否為numstr的最后一個(gè)數(shù)字,即判斷m=n-1是否成立,如果成立,則depstr為該水深點(diǎn)的完整數(shù)字序列,且無(wú)小數(shù)位,將depstr轉(zhuǎn)變?yōu)閿?shù)值型即得到正確的水深點(diǎn)讀數(shù),同時(shí)獲取其寬度w和高度h,比較結(jié)束,否則繼續(xù)比較;
c2、abs(leftm-leftm-1)<20且5<abs(topm-topm-1)<15,則numstrm為小數(shù)位,將numstrm連接到depstr,depstr作為該水深點(diǎn)的完整數(shù)字序列,將depstr轉(zhuǎn)變?yōu)閿?shù)值型并除以10即得到正確的水深點(diǎn)讀數(shù),同時(shí)獲取其整數(shù)位寬度w和高度h;
判斷m<n-1是否成立,如果成立,則對(duì)depstr重新賦值為numstrm+1,并令m=m+1,同時(shí)獲取numstrm+1的坐標(biāo)位置,否則繼續(xù)比較;
進(jìn)而,判斷numstrm是否為numstr的最后一個(gè)數(shù)字,即判斷m=n-1是否成立,如果成立,則depstr為該水深點(diǎn)的完整數(shù)字序列且數(shù)值為1位整數(shù),將depstr轉(zhuǎn)變?yōu)閿?shù)值型即得到正確的水深點(diǎn)讀數(shù),同時(shí)獲取其寬度w和高度h,比較結(jié)束,否則繼續(xù)比較;
c3、如果不滿(mǎn)足c1、c2的兩個(gè)初始判斷條件,則depstr為該水深點(diǎn)的完整數(shù)字序列,且無(wú)小數(shù)位,將depstr轉(zhuǎn)變?yōu)閿?shù)值型即得到正確的水深點(diǎn)讀數(shù),同時(shí)獲取其寬度w和高度h,獲取numstrm的坐標(biāo)位置,對(duì)depstr重新賦值為numstrm;(depstr是一個(gè)臨時(shí)變量,用來(lái)存儲(chǔ)通過(guò)判斷從數(shù)字序列中分離得到的單個(gè)水深點(diǎn)讀數(shù),每得到一個(gè)完整的水深點(diǎn)讀數(shù),depstr就被轉(zhuǎn)換為數(shù)值型并存入一個(gè)用來(lái)存儲(chǔ)所選全部水深點(diǎn)讀數(shù)的數(shù)組變量,然后將被重新賦值用來(lái)存儲(chǔ)下一個(gè)水深點(diǎn)讀數(shù)。)
進(jìn)而,判斷numstrm是否為numstr的最后一個(gè)數(shù)字,即判斷m=n-1是否成立,如果成立,則depstr為該水深點(diǎn)的完整數(shù)字序列,且無(wú)小數(shù)位,將depstr轉(zhuǎn)變?yōu)閿?shù)值型即得到正確的水深點(diǎn)讀數(shù),獲取其寬度w和高度h,比較結(jié)束,否則繼續(xù)比較。
s7、依次計(jì)算各個(gè)水深點(diǎn)的空間坐標(biāo),進(jìn)一步地,步驟s7具體包括:
s7.1、首先根據(jù)數(shù)字識(shí)別結(jié)果獲取數(shù)字序列第一個(gè)數(shù)字左上角在所選圖像區(qū)域中的坐標(biāo)(x,y);
s7.2、采用下述公式計(jì)算整數(shù)位中心點(diǎn)在整幅海圖中的坐標(biāo)(cx,cy),即水深點(diǎn)的空間坐標(biāo):
cx=x+(x+w/2)×sx
cy=y(tǒng)-(y+h/2)×sy
其中:x,y表示框選的圖像區(qū)域左上角的空間坐標(biāo);x,y表示數(shù)字序列第一個(gè)數(shù)字左上角在所選圖像區(qū)域中的坐標(biāo),sx、sy表示x、y方向的像元大小,w表示水深點(diǎn)數(shù)值整數(shù)位寬度,h表示水深點(diǎn)數(shù)值整數(shù)位高度。
s8、根據(jù)所獲取的水深點(diǎn)空間坐標(biāo)在步驟s2創(chuàng)建的點(diǎn)矢量文件中生成點(diǎn)要素并將水深數(shù)據(jù)寫(xiě)入屬性表,在圖上顯示獲取的水深讀數(shù)和空間位置以便判斷正確與否;
s9、目視判斷所獲取的水深點(diǎn)讀數(shù)和空間位置是否正確,若不正確,進(jìn)行修正,若正確,則重復(fù)s2至s9步,完成整幅海圖的矢量化,修正步驟為:
s9.1、用戶(hù)在地圖窗口中點(diǎn)擊待修正的水深點(diǎn),獲取用戶(hù)點(diǎn)擊位置的空間坐標(biāo),比較用戶(hù)點(diǎn)擊位置的空間坐標(biāo)與所有水深點(diǎn)的空間坐標(biāo)之間的距離,距離最小者為待修正的水深點(diǎn);
s9.2、操作人員手動(dòng)錄入水深點(diǎn)正確讀數(shù),根據(jù)所錄入數(shù)字整數(shù)位,從0至9數(shù)字模板中讀取相應(yīng)的數(shù)字,若整數(shù)位只有1位只需讀取其中一個(gè)數(shù)字模板圖像,否則需要讀取相應(yīng)位數(shù)的數(shù)字模板圖像,并合成為一個(gè)圖像,獲取整數(shù)位的寬度w和高度h;
s9.3、分別對(duì)所選圖像區(qū)域和前述步驟獲取的數(shù)字模板圖像執(zhí)行傅里葉變換得到各自的頻譜圖;
s9.4、對(duì)兩個(gè)頻譜圖執(zhí)行相關(guān)操作(correlation),然后對(duì)相關(guān)操作(correlation)所得到的圖像執(zhí)行傅里葉逆變換,在用戶(hù)點(diǎn)擊位置附近搜索極大值點(diǎn)(x,y)即為待修正水深點(diǎn)整數(shù)位左上角在所選圖像區(qū)域中的坐標(biāo)(x,y);
s9.5、采用下述公式計(jì)算整數(shù)位中心點(diǎn)在整幅海圖中的坐標(biāo)(cx,cy),即水深點(diǎn)的空間坐標(biāo):
cx=x+(x+w/2)×sx
cy=y(tǒng)-(y+h/2)×sy
其中:x,y表示框選的圖像區(qū)域左上角的空間坐標(biāo);x,y表示數(shù)字序列第一個(gè)數(shù)字左上角在所選圖像區(qū)域中的坐標(biāo),sx、sy表示x、y方向的像元大小,w表示水深點(diǎn)數(shù)值整數(shù)位寬度,h表示水深點(diǎn)數(shù)值整數(shù)位高度;
s9.6、根據(jù)計(jì)算得到的(cx,cy)和操作人員錄入的水深點(diǎn)讀數(shù),修改點(diǎn)矢量文件中對(duì)應(yīng)的記錄。
本發(fā)明未涉及部分均與現(xiàn)有技術(shù)相同或可采用現(xiàn)有技術(shù)加以實(shí)現(xiàn)。