本發(fā)明涉及建筑圖像處理技術領域,尤其是涉及一種建筑戶型的矢量圖生成方法、裝置及終端。
背景技術:
諸如房屋戶型圖是日常生活以及建筑領域中常見的一種建筑圖。常見的建筑圖通常繪制于紙張上。隨著計算機科學技術的發(fā)展,人們對建筑圖的要求也逐漸提升,希望將諸如建筑商提供的二維建筑戶型圖導入至三維建模軟件中生成三維戶型圖,以對建筑戶型有更直觀方便的認識。
然而,若要將二維建筑戶型圖轉換為三維戶型圖,則需要對二維建筑戶型圖進行矢量化處理,以便后續(xù)的三維建模處理。由于現有技術中對建筑圖紙的計算機處理的研究較少,建筑戶型圖通常包括多種元素且并不規(guī)范,較為復雜,因而現有技術中利用計算機將二維建筑戶型圖生成相應的矢量圖較難,本領域中通常需要采用人工繪制的方式繪制出二維建筑戶型圖的矢量圖,進而利用該矢量圖進行后續(xù)的三維建模。但是,這種采用人工繪制建筑戶型的矢量圖的方式較為費時費力,效率低下。
針對上述通過人工繪制建筑戶型矢量圖較為費時費力,效率低下的問題,目前尚未提出有效的解決方案。
技術實現要素:
有鑒于此,本發(fā)明的目的在于提供一種建筑戶型的矢量圖生成方法、裝置及終端,以緩解現有技術中存在的通過人工繪制建筑戶型矢量圖較為費時費力,效率低下的技術問題。
為了實現上述目的,本發(fā)明實施例采用的技術方案如下:
第一方面,本發(fā)明實施例提供了一種建筑戶型的矢量圖生成方法,包括:獲取建筑戶型的原始圖像;對原始圖像進行預處理,以增強原始圖像,并去除原始圖像的噪聲,得到目標圖像;確定目標圖像的戶型整體輪廓;基于戶型整體輪廓,將目標圖像分割為墻體區(qū)域和非墻體區(qū)域;對墻體區(qū)域進行矢量處理,以擬合墻體線條;基于墻體線條,生成建筑戶型的矢量圖。
結合第一方面,本發(fā)明實施例提供了第一方面的第一種可能的實施方式,其中,對原始圖像進行預處理包括:將原始圖像的像素調整為預設像素規(guī)格;判斷原始圖像的色彩類別,其中,色彩類別包括灰度圖像和彩色圖像;根據原始圖像的色彩類別,對原始圖像進行圖像增強及圖像去噪的處理,得到目標圖像。
結合第一方面的第一種可能的實施方式,本發(fā)明實施例提供了第一方面的第二種可能的實施方式,其中,根據原始圖像的色彩類別,對原始圖像進行圖像增強及圖像去噪的處理包括:當原始圖像的色彩類別為灰度圖像時,對原始圖像依次執(zhí)行圖像反轉、灰度圖像增強及圖像去噪的步驟;當原始圖像的色彩類別為彩色圖像時,對原始圖像依次執(zhí)行顏色空間轉換、彩色圖像增強及圖像去噪的步驟。
結合第一方面的第二種可能的實施方式,本發(fā)明實施例提供了第一方面的第三種可能的實施方式,其中,確定目標圖像的戶型整體輪廓包括:當原始圖像的色彩類別為灰度圖像時,檢測并得到目標圖像的戶型整體輪廓;當原始圖像的色彩類別為彩色圖像時,通過區(qū)域生長算法分割目標圖像中的背景圖像和戶型圖像,將目標圖像中的背景圖像填充為預設顏色,基于預設顏色對目標圖像采取二值化分割操作,以得到目標圖像的戶型整體輪廓。
結合第一方面,本發(fā)明實施例提供了第一方面的第四種可能的實施方式,其中,對墻體區(qū)域進行矢量處理包括:識別目標圖像中的墻體區(qū)域的形態(tài),其中,形態(tài)包括塊狀墻體、混合墻體和細線墻體;對墻體區(qū)域進行與墻體區(qū)域的形態(tài)相對應的矢量處理。
結合第一方面的第四種可能的實施方式,本發(fā)明實施例提供了第一方面的第五種可能的實施方式,其中,識別目標圖像中的墻體區(qū)域的形態(tài)包括:讀取代表目標圖像中的墻體區(qū)域的形態(tài)的標識,根據標識確定墻體區(qū)域的形態(tài);或者,利用平均積分投影函數,確定目標圖像中的墻體區(qū)域的形態(tài)。
結合第一方面的第四種可能的實施方式,本發(fā)明實施例提供了第一方面的第六種可能的實施方式,其中,對墻體區(qū)域進行與墻體區(qū)域的形態(tài)相對應的矢量處理,包括:當墻體區(qū)域的形態(tài)為塊狀墻體時,對墻體區(qū)域依次執(zhí)行閾值分割處理、形態(tài)學濾波、輪廓檢測、輪廓篩選、卷積核去除噪點的步驟,以得到墻體輪廓坐標集,根據墻體輪廓坐標集擬合墻體線條;當墻體區(qū)域的形態(tài)為混合墻體時,利用預先定義的腐蝕算子和膨脹算子對墻體區(qū)域進行處理,得到承重墻輪廓坐標集和非稱重墻輪廓坐標集,根據承重墻輪廓坐標集和非稱重墻輪廓坐標集,擬合墻體線條;當墻體區(qū)域的形態(tài)為細線墻體時,通過zhang并行快速算法對墻體區(qū)域進行細化,基于霍夫變換算法對細化后的墻體區(qū)域進行篩選,得到墻體輪廓坐標集,根據墻體輪廓坐標集擬合墻體線條。
結合第一方面至第一方面的第六種可能的實施方式,本發(fā)明實施例提供了第一方面的第七種可能的實施方式,其中,對墻體區(qū)域進行矢量處理之后,方法還包括:利用戶型整體輪廓和墻體線條的差別,分別確定并標注建筑戶型的陽臺區(qū)域、窗戶區(qū)域及入戶門區(qū)域在目標圖像中的位置。
第二方面,本發(fā)明實施例還提供一種建筑戶型的矢量圖生成裝置,包括:獲取模塊,用于獲取建筑戶型的原始圖像;預處理模塊,用于對原始圖像進行預處理,以增強原始圖像,并去除原始圖像的噪聲,得到目標圖像;輪廓確定模塊,用于確定目標圖像的戶型整體輪廓;分割模塊,用于基于戶型整體輪廓,將目標圖像分割為墻體區(qū)域和非墻體區(qū)域;矢量處理模塊,用于對墻體區(qū)域進行矢量處理,以擬合墻體線條;矢量圖生成模塊,用于基于墻體線條,生成建筑戶型的矢量圖。
第三方面,本發(fā)明實施例提供了一種終端,終端包括存儲器以及處理器,存儲器用于存儲支持處理器執(zhí)行第一方面提供的任一項方法的程序,處理器被配置為用于執(zhí)行存儲器中存儲的程序。
本發(fā)明實施例提供了一種建筑戶型的矢量圖生成方法、裝置及終端,通過對建筑戶型的原始圖像預處理,得到圖像增強及去除噪聲的目標圖像,基于目標圖像的戶型整體輪廓,將目標圖像分割為墻體區(qū)域和非墻體區(qū)域;進而擬合墻體線條,并生成所述建筑戶型的矢量圖。這種方式可以自動基于建筑戶型的原始圖生成對應的矢量圖,無需人工繪制,不僅節(jié)約了人力成本,而且較好地提升了矢量圖繪制效率。
本發(fā)明的其他特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點在說明書、權利要求書以及附圖中所特別指出的結構來實現和獲得。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發(fā)明具體實施方式或現有技術中的技術方案,下面將對具體實施方式或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施方式,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1示出了本發(fā)明實施例所提供的第一種建筑戶型的矢量圖生成方法流程圖;
圖2示出了本發(fā)明實施例所提供的第二種建筑戶型的矢量圖生成方法流程圖;
圖3示出了本發(fā)明實施例所提供的一種包括有塊狀墻體的戶型示意圖;
圖4示出了本發(fā)明實施例所提供的一種輪廓篩選后的戶型示意圖;
圖5示出了本發(fā)明實施例所提供的一種原始帶有噪點的線條示意圖;
圖6示出了本發(fā)明實施例所提供的一種經處理后的線條示意圖;
圖7示出了本發(fā)明實施例所提供的一種包括有混合墻體的戶型示意圖;
圖8示出了本發(fā)明實施例所提供的一種分離后的粗線墻體示意圖;
圖9示出了本發(fā)明實施例所提供的一種分離后的細線墻體示意圖;
圖10示出了本發(fā)明實施例所提供的一種包括有細線墻體的戶型示意圖;
圖11示出了本發(fā)明實施例所提供的一種擬合后的墻體線條示意圖;
圖12示出了本發(fā)明實施例所提供的第三種建筑戶型的矢量圖生成方法流程圖;
圖13示出了本發(fā)明實施例所提供的一種建筑戶型的矢量圖生成裝置的結構框圖;
圖14示出了本發(fā)明實施例所提供的一種終端的結構示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
將二維建筑戶型圖轉化為三維戶型圖的過程中,需要建筑戶型的矢量圖,現有技術中通常采用人工繪制的方式繪制出二維建筑戶型圖的矢量圖,進而利用該矢量圖進行后續(xù)的三維建模。然而,這種方式費時費力,人工成本較高,且效率低下?;诖耍景l(fā)明實施例提供的一種建筑戶型的矢量圖生成方法、裝置及終端,可以自動基于建筑戶型的原始圖生成對應的矢量圖,無需人工繪制,較好節(jié)約了人力成本,并提升了矢量圖繪制效率。該方法可以采用相應的軟件或硬件實現,以下對本發(fā)明實施例進行詳細介紹。
實施例一:
參見圖1所示的第一種建筑戶型的矢量圖生成方法流程圖,具體包括以下步驟:
步驟s102,獲取建筑戶型的原始圖像;
步驟s104,對原始圖像進行預處理,以增強原始圖像,并去除原始圖像的噪聲,得到目標圖像;
由于原始圖像的來源不同,圖像大小千差萬別,為了便于處理,需要將圖像的尺寸統(tǒng)一化。進一步,考慮到建筑戶型圖像可能為灰度圖像或者彩色圖像,應當對不同類型的圖像分別進行處理。因此,上述對原始圖像進行預處理可以包括如下步驟:
(1)將原始圖像的像素調整為預設像素規(guī)格;也即,將圖像尺寸統(tǒng)一化。優(yōu)選的,將圖像長寬像素比例統(tǒng)一約束在1024*768內;縮放比例rio=max(1024/src.width,768/src.height),其中,src.width為原始圖像的寬度,src.height為原始圖像的高度。對于縮放后的圖片,通過線性差值可得:
dst(x,y)=(1-u)*(1-v)*src(x',y')+(1-u)*v*src(x',y'+1)+u*(1-v)*src(x'+1,y')+u*v*src(x'+1,y'+1)
其中,src為原始圖像,dst為目標圖像。其中,x、y分別表示目標圖像像素的橫縱坐標位置;x'、y'分別表示原始圖像像素的橫縱坐標位置。
u、v∈[0,1];分別表示插值位置與(x',y')的相對位置。
(2)判斷原始圖像的色彩類別,其中,色彩類別包括灰度圖像和彩色圖像;
(3)根據原始圖像的色彩類別,對原始圖像進行圖像增強及圖像去噪的處理。不同色彩類別的圖像,對應的圖像增強及圖像去噪的處理方式也有差異。
步驟s106,確定目標圖像的戶型整體輪廓;由于原始圖像除了包括建筑物等內容外,還可能包括廣告公司后期加工美化過的其它內容,因此需要直接從目標圖像中確定戶型的整體輪廓。
步驟s108,基于戶型整體輪廓,將目標圖像分割為墻體區(qū)域和非墻體區(qū)域;也即將目標圖像劃分為墻體和非墻體。
步驟s110,對墻體區(qū)域進行矢量處理,以擬合墻體線條;在不同的圖像中,墻體區(qū)域通常存在不同的形態(tài),諸如細線結構、塊狀結構或混合結構;細線結構中通常包含有各種細線、空心圓、弧和文本等對象;塊狀結構中通常包含有各種實心的特定符號,如箭頭、實心圓等?;旌辖Y構中則既包括有細線結構又包括有塊狀結構。通常判別方式為:若圖像中對象的寬度wide≥m,則該對象屬于塊狀結構,反之屬于細線結構。其中,m為預設值。墻體作為戶型圖中最重要的元件之一,分割與檢測效果直接關系到矢量圖的可靠性,進而關系到最終三維重構效果的正確性。墻體的形態(tài)在有的圖像里是實體粗線,這種線條屬于塊狀區(qū)域,有的圖像里是實體粗線表示承重墻,細線墻體表示非承重墻,有的圖像里完全用細線來繪制墻體。優(yōu)選的,需要事先識別圖像中的墻體區(qū)域的形態(tài),根據不同的墻體形態(tài)采取相應的矢量處理措施。
步驟s112,基于墻體線條,生成建筑戶型的矢量圖。
本發(fā)明實施例提供的上述建筑戶型的矢量圖生成方法,通過對建筑戶型的原始圖像預處理,得到圖像增強及去除噪聲的目標圖像,基于目標圖像的戶型整體輪廓,將目標圖像分割為墻體區(qū)域和非墻體區(qū)域;進而擬合墻體線條,并生成所述建筑戶型的矢量圖。這種方式可以自動基于建筑戶型的原始圖生成對應的矢量圖,無需人工繪制,不僅節(jié)約了人力成本,而且較好地提升了矢量圖繪制效率。
實施例二:
參見圖2所示的第二種建筑戶型的矢量圖生成方法流程圖,該方法用于建筑戶型為灰度圖像的情況,具體包括以下步驟:
步驟s202,獲取建筑戶型的原始圖像;
步驟s204,將原始圖像的像素調整為預設像素規(guī)格;
步驟s206,對原始圖像依次執(zhí)行圖像反轉、灰度圖像增強及圖像去噪的步驟,得到目標圖像。其中,可以利用公式dst(x,y)=255-src(x',y')進行圖像反轉,利用映射曲線公式g(x)=a*f(x)+b實現亮度與對比度增強。其中,參數f(x)表示原始圖像像素,參數g(x)表示目標圖像像素。參數a為增益,常用于控制圖像對比度,需要滿足a>0。參數b為偏置,常用于控制圖像的亮度,該公式還可以寫為g(i,j)=a*f(i,j)+b;其中,i,j表示像素的橫縱坐標。最后再通過二值化方式進一步增強圖像,并對圖像進行去噪處理。
步驟s208,檢測并得到目標圖像的戶型整體輪廓;對于灰度圖像,通過上述預處理,再利用諸如直線檢測等相關技術即可得到建筑戶型整體的外圍論過,其中,諸如窗戶、入戶門等輪廓信息也都被包含在該外圍輪廓內。
步驟s210,基于戶型整體輪廓,將目標圖像分割為墻體區(qū)域和非墻體區(qū)域。
步驟s212,識別目標圖像中的墻體區(qū)域的形態(tài),其中,形態(tài)包括塊狀墻體、混合墻體和細線墻體。
具體的,識別目標圖像中的墻體區(qū)域的形態(tài)的方式有多種,在此列舉兩種:
(1)讀取代表目標圖像中的墻體區(qū)域的形態(tài)的標識,根據標識確定墻體區(qū)域的形態(tài);其中,該標識可以由人工輸入,或者由人工選擇墻體形態(tài),進而計算機直接讀取。
(2)利用平均積分投影函數,確定目標圖像中的墻體區(qū)域的形態(tài)。當圖像的某一列(行)像素灰度均值發(fā)生變化時,這種變化會在該列(行)的平均積分投影值上反應出來。粗細不同的墻體線在平均積分投影圖像上的形態(tài)不同,可用這種性質區(qū)分墻體線條形態(tài)。平均積分投影函數表示為:
其中,i(x,y)表示點(x,y)處的像素灰度值;mv(x)表示在區(qū)間[y1,y2]上的垂直平均積分投影函數;mh(y)表示在區(qū)間[x1,x2]上的水平平均積分投影函數。為了能夠魯棒地抵抗圖像中的噪聲和以及圖像不完全對齊帶來的問題,利用以下公式將mv(x)和mh(y)歸一化到[01]區(qū)間:
通過上述方式,可以較好地實現目標圖像中的墻體區(qū)域的形態(tài)確定。
可以根據實際應用而自行選擇,當然,也可以采用其它方式實現墻體形態(tài)的識別,在此不再贅述。
步驟s214,對墻體區(qū)域進行與墻體區(qū)域的形態(tài)相對應的矢量處理,以擬合墻體線條。
具體的,對墻體區(qū)域進行與墻體區(qū)域的形態(tài)相對應的矢量處理,包括:
a當墻體區(qū)域的形態(tài)為塊狀墻體時,對墻體區(qū)域依次執(zhí)行閾值分割處理、形態(tài)學濾波、輪廓檢測、輪廓篩選、卷積核去除噪點的步驟,以得到墻體輪廓坐標集,根據墻體輪廓坐標集擬合墻體線條。
b當墻體區(qū)域的形態(tài)為混合墻體時,利用預先定義的腐蝕算子和膨脹算子對墻體區(qū)域進行處理,得到承重墻輪廓坐標集和非稱重墻輪廓坐標集,根據承重墻輪廓坐標集和非稱重墻輪廓坐標集,擬合墻體線條;
c當墻體區(qū)域的形態(tài)為細線墻體時,通過zhang并行快速算法對墻體區(qū)域進行細化,基于霍夫變換算法對細化后的墻體區(qū)域進行篩選,得到墻體輪廓坐標集,根據墻體輪廓坐標集擬合墻體線條。
針對不同形態(tài)的墻體進行相應的矢量處理,可以增強圖像矢量處理效果,使矢量圖更加準確可靠,也極大節(jié)約了人工處理的成本,提升了效率。
步驟s216,利用戶型整體輪廓和墻體線條的差別,分別確定并標注所述建筑戶型的陽臺區(qū)域、窗戶區(qū)域及入戶門區(qū)域在所述目標圖像中的位置。
步驟s218,生成所述建筑戶型的矢量圖。
具體的,基于墻體線條、以及陽臺區(qū)域、窗戶區(qū)域和入戶門區(qū)域生成建筑戶型的矢量圖。在該矢量圖中,標注有墻體線條、陽臺、窗戶和入戶門。
具體實施時,在檢測出了墻體線及外圍輪廓線的基礎上,利用窗戶、陽臺及入戶門信息在外圍輪廓上的特性,用內外輪廓之差找出陽臺、窗及入戶門的位置。首先把墻體輪廓和外部輪廓繪制到同一圖像內,為了避免在檢測外部輪廓的漫水填充過程中在邊緣位置有少許偏差的可能,把墻體輪廓加粗了繪制,然后減去墻體加粗繪制的圖像,得到只包括細線的圖像,對該圖像檢測輪廓得到輪廓集,最后再對所得的輪廓集進行分類得到門和陽臺及窗的類別。判別陽臺的依據為輪廓集中周長最長的,判別門的依據為輪廓集中點的數量最多的,剩下的都為窗戶輪廓。
本發(fā)明實施例提供的上述建筑戶型的矢量圖生成方法,主要針對原始圖像為灰度圖像的情況進行詳細說明,調整原始圖像的像素以使圖像尺寸統(tǒng)一化,通過圖像反轉、灰度圖像增強及圖像去噪等步驟得到目標圖像,進而將目標圖像分割為墻體區(qū)域和非墻體區(qū)域,并對墻體區(qū)域進行與墻體區(qū)域的形態(tài)相對應的矢量處理,可以較好的擬合墻體線條。同時還能夠利用差別確定陽臺、窗戶及入戶門位置,最后生成較好的矢量圖。這種方式可以自動基于建筑戶型的灰度原始圖生成對應的矢量圖,無需人工繪制,不僅節(jié)約了人力成本,而且較好地提升了矢量圖繪制效率。
為了便于理解,針對上述“墻體區(qū)域進行與墻體區(qū)域的形態(tài)相對應的矢量處理”的步驟,在此詳細說明。
(一)塊狀墻體矢量化:
塊狀墻體即為圖像中的實體粗線墻體,通過統(tǒng)計說明,墻體線通常為圖像中最黑的元素,因此針對此類戶型圖,通常采用閾值分割墻體,首先需要將圖像通過公式gray=0.30*r+0.59*g+0.11*b轉換為灰度圖,然后統(tǒng)計直方圖,查找像素中亮度的深度顏色的前10%,也可理解為查找像素中亮度最黑的10%,以找到直方圖中深度顏色為前10%的分界線,將該分界線作為自動閾值的初始值,在二值化后進行形態(tài)學濾波,以去掉部分噪聲。再接下來進行輪廓檢測,得到墻體輪廓信息,但是由于該輪廓信息中還包括其它噪點或雜線條等,接下來進行輪廓篩選和整理。針對原始輪廓,首先要去掉那些很小的以及不規(guī)則的非墻體線的輪廓,用輪廓的周長去判斷太短的輪廓,通過周長與輪廓角點數量的比值去判斷曲直,進而去掉那些不規(guī)則的輪廓線??梢酝ㄟ^圖3所示的一種包括有塊狀墻體的戶型示意圖和圖4所示的一種輪廓篩選后的戶型示意圖相比,證實上述處理效果較佳。
之后需要調整輪廓線上那些不直的點,這些點一般是由于原圖中位置接近墻體的深色家具引入的噪點。具體方法是自定義一組5*5的核去對輪廓線的圖進行形態(tài)學處理,以得到輪廓線四個方向上的直角點.具體的,可以卷積核組以矩陣的形式示意如下:
可以通過圖5所示的一種原始帶有噪點的線條示意圖和圖6所示的一種經處理后的線條示意圖相比,可以證實上述處理的效果較佳,有效的擬合了墻體線條。
(二)混合墻體矢量化:
針對既有粗體實線墻體,又有細線墻體的圖像,具體可參照圖5所示的一種戶型圖像示意圖,該圖像dst已分割為墻體區(qū)域和非墻體區(qū)域;墻體區(qū)域中包括全部細線墻體對象dst-thin,也包括全部塊狀墻體對象dst-bold。顯然有:dst=dst-thin+dst-bold。
對腐蝕算子和膨脹算子的定義如下:
腐蝕算子θ:
把結構元素b平移a后得到ba,若ba包含于x,我們記下這個a點,所有滿足上述條件的a點組成的集合稱做x被b腐蝕,x是被處理的對象,b是結構元素。
膨脹算子⊕:d(x)={a|ba↑x}=x⊕b
把結構元素b平移a后得到ba,若ba擊中x,我們記下這個a點。所有滿足上述條件的a點組成的集合稱做x被b膨脹的結果。
其中擊中↑定義為:
設有兩幅圖象b,x。若存在這樣一個點,它既是b的元素,又是x的元素,則稱b擊中(hit)x,記作b↑x。
則dst-bold=(aθb)⊕b;然后得到dst-thin=dst-dst-bold。b為m*m的窗口。(aθb)⊕b的運算首先通過腐蝕算子完全消除圖象dst中所有的寬度wide<m的物體,再通過膨脹算子復原已經同樣被腐蝕掉了m寬度的塊區(qū)域對象的原始形狀。從而得到承重墻輪廓坐標集和非稱重墻輪廓坐標集,根據承重墻輪廓坐標集和非稱重墻輪廓坐標集,擬合墻體線條;具體的,可以參照圖7所示的一種包括有混合墻體的戶型示意圖,以及經過處理后區(qū)分開來的圖8所示的一種分離后的粗線墻體示意圖,和經過處理后區(qū)分開來的圖9所示的一種分離后的細線墻體示意圖。
(三)細線墻體矢量化:
對于墻體全部為細線的圖像,首先進行細化,再霍夫變換檢測直線,接著篩選水平和垂直平行線確定墻體位置輪廓。具體的,細化過程可以采用經典的圖像細化方法:zhang并行快速算法實現。該算法示意如下:
首先對像素的8鄰域進行編號,設定當前像素(i,j)為p1,像素(i,j+1)為p2,像素(i+1,j+1)為p3,像素(i+1,j)為p4,像素(i+1,j-1)為p5,像素(i,j-1)為p6,像素(i-1,j-1)為p7,像素(i-1,j)為p8,像素(i-1,j+1)為p9。其中p1是我們討論的像素點,首先前提條件是p1是前景點,若要刪除該點,需要滿足以下兩種情況中的任意一種。
情況一:滿足以下四個條件,可將p1點去除:
(1)2<=n(p1)<=6,n(x)為x的8領域中黑點(背景點)的個數;
(2)a(p1)=1,a(x)為p2-p9之間按序前后分別為0、1的個數;該判斷條件為,從p2至p9的排列順序中,01模式的數量為1,即認為a(p1)=1,之所以要01模式數量為1,是要保證刪除當前像素點后的連通性。倘若01模式數量大于1,則不能保證刪除當前點p1后的連通性。具體判斷過程可以參照相關技術實現,在此不再贅述。
(3)p2*p4*p6=0;
(4)p4*p6*p8=0。
情況二:滿足以下四個條件,可將p1點去除:
(1)2<=n(p1)<=6,n(x)為x的8領域中黑點(背景點)的個數;
(2)a(p1)=1,a(x)為p2-p9之間按序前后分別為0、1的個數;
(3)p2*p4*p8=0;
(4)p2*p6*p8=0。
具體的,可以參照圖10所示的一種包括有細線墻體的戶型示意圖,以及經過上述處理后的如圖11所示的一種擬合后的墻體線條示意圖。
通過圖10和圖11可以較好的證明通過上述矢量化處理后,可以擬合得到較好的細線墻體。
實施例三:
參見圖12所示的第三種建筑戶型的矢量圖生成方法流程圖,該方法用于建筑戶型為彩色圖像的情況,具體包括以下步驟:
步驟s302,獲取建筑戶型的原始圖像。
步驟s304,將原始圖像的像素調整為預設像素規(guī)格。
步驟s306,對原始圖像依次執(zhí)行顏色空間轉換、彩色圖像增強及圖像去噪的步驟,得到目標圖像。
對于彩色圖像,在調整為預設像素規(guī)格進行尺寸約束后,首先將顏色空間由rgb空間轉為ycbcr空間,以使圖像的亮度數據和色度數據分離,然后將y分量上的圖像(也即,亮度數據)進行直方圖均衡化,再與色度數據進行合成,以增強圖像。最后再采用相應的核進行形態(tài)學運算,諸如形態(tài)學濾波器等去除噪聲。
步驟s308,通過區(qū)域生長算法分割目標圖像中的背景圖像和戶型圖像,將目標圖像中的背景圖像填充為預設顏色,基于預設顏色對目標圖像采取二值化分割操作,以得到目標圖像的戶型整體輪廓。
對于彩色圖像,通常除了包括戶型信息,還包括具有顏色或者紋理的背景。若要獲得其中的戶型整體輪廓,首先需要將背景圖像與戶型圖像進行分割。優(yōu)選的,采用區(qū)域生長的算法。諸如,設定圖像左上坐標(1,1)的位置為種子點,從種子點開始填充一個連通域,通過像素值的接近程度來衡量是否填充。在點(x,y)的像素被認為是屬于重新繪制的區(qū)域,在固定范圍內的像素點彩色值滿足以下條件:
src(seed.x,seed.y)r-lo_diffr<=src(x,y)r<=src(seed.x,seed.y)r+up_diffr
src(seed.x,seed.y)g-lo_diffg<=src(x,y)g<=src(seed.x,seed.y)g+up_diffg;
src(seed.x,seed.y)b-lo_diffb<=src(x,y)b<=src(seed.x,seed.y)b+up_diffb;
或者在浮動區(qū)域內滿足以下條件:
src(x',y')r-lo_diffr<=src(x,y)r<=src(x',y')r+up_diffr;
src(x',y')g-lo_diffg<=src(x,y)g<=src(x',y')g+up_diffg;
src(x',y')b-lo_diffb<=src(x,y)b<=src(x',y')b+up_diffb,;
其中,src(seed.x,seed.y)是種子點顏色值,src(seed.x,seed.y)r、src(seed.x,seed.y)g、src(seed.x,seed.y)b分別表示種子點顏色值的r值、g值和b值;src(x',y')是像素領域點的值;lo_diffr、lo_diffg、lo_diffb、up_diffr、up_diffg、up_diffb均為相應的預設差值。
上述公式也可理解為:為了被加入到連通域中,一個像素的彩色/亮度應該足夠接近于它的相鄰像素的彩色/亮度值,當該鄰域點已經被認為屬于浮動范圍情況下的連通域。
通過相鄰區(qū)域之間的色彩差確定,色彩差越大,越無法填充,也即通過顏色梯度進行填充。由于戶型輪廓的墻體顏色通常為最深的,因而其可以阻隔填充,進而將目標圖像分割為背景圖像和戶型圖像。然后將目標圖像中的背景圖像填充為預設顏色(避免填充色為原圖中本來就有的顏色,可以采用諸如戶型圖中極少用到的純綠色作為填充色),進而通過查找顏色來進行二值化分割操作。具體的,遍歷像素點,將顏色為填充色的像素置為0,非填充顏色的像素置為1,進而通過相關技術實現輪廓檢測,篩選去除小的輪廓信息,以得到目標圖像的戶型整體輪廓。
步驟s310,基于戶型整體輪廓,將目標圖像分割為墻體區(qū)域和非墻體區(qū)域。
步驟s312,識別目標圖像中的墻體區(qū)域的形態(tài),其中,形態(tài)包括塊狀墻體、混合墻體和細線墻體。
步驟s314,對墻體區(qū)域進行與墻體區(qū)域的形態(tài)相對應的矢量處理,以擬合墻體線條。
具體的,對墻體區(qū)域進行與墻體區(qū)域的形態(tài)相對應的矢量處理,包括:
當墻體區(qū)域的形態(tài)為塊狀墻體時,對墻體區(qū)域依次執(zhí)行閾值分割處理、形態(tài)學濾波、輪廓檢測、輪廓篩選、卷積核去除噪點的步驟,以得到墻體輪廓坐標集,根據墻體輪廓坐標集擬合墻體線條。
當墻體區(qū)域的形態(tài)為混合墻體時,利用預先定義的腐蝕算子和膨脹算子對墻體區(qū)域進行處理,得到承重墻輪廓坐標集和非稱重墻輪廓坐標集,根據承重墻輪廓坐標集和非稱重墻輪廓坐標集,擬合墻體線條;
當墻體區(qū)域的形態(tài)為細線墻體時,通過zhang并行快速算法對墻體區(qū)域進行細化,基于霍夫變換算法對細化后的墻體區(qū)域進行篩選,得到墻體輪廓坐標集,根據墻體輪廓坐標集擬合墻體線條。
步驟s316,利用戶型整體輪廓和墻體線條的差別,分別確定并標注所述建筑戶型的陽臺區(qū)域、窗戶區(qū)域及入戶門區(qū)域在所述目標圖像中的位置。
步驟s318,生成所述建筑戶型的矢量圖。
具體的,基于墻體線條、以及陽臺區(qū)域、窗戶區(qū)域和入戶門區(qū)域生成建筑戶型的矢量圖。在該矢量圖中,標注有墻體線條、陽臺、窗戶和入戶門。
上述步驟s312~步驟s318的具體實施過程可以參照實施例二的相關部分所述,在此不再贅述。
本發(fā)明實施例提供的上述建筑戶型的矢量圖生成方法,主要針對原始圖像為彩色圖像的情況進行詳細說明,調整原始圖像的像素以使圖像尺寸統(tǒng)一化,通過顏色空間轉換、彩色圖像增強及圖像去噪等步驟得到目標圖像,再將目標圖像分割為背景圖像和戶型圖像以得到戶型整體輪廓,進而將目標圖像分割為墻體區(qū)域和非墻體區(qū)域,并對墻體區(qū)域進行與墻體區(qū)域的形態(tài)相對應的矢量處理,可以較好的擬合墻體線條。同時還能夠利用差別確定陽臺、窗戶及入戶門位置,最后生成較好的矢量圖。這種方式可以自動基于建筑戶型的彩色原始圖生成對應的矢量圖,無需人工繪制,不僅節(jié)約了人力成本,而且較好地提升了矢量圖繪制效率。
實施例四:
對應于前述實施例中所提供的建筑戶型的矢量圖生成方法,本發(fā)明實施例提供了一種建筑戶型的矢量圖生成裝置,參見圖13所示,該裝置包括以下模塊:
獲取模塊402,用于獲取建筑戶型的原始圖像;
預處理模塊404,用于對原始圖像進行預處理,以增強原始圖像,并去除原始圖像的噪聲,得到目標圖像;
輪廓確定模塊406,用于確定目標圖像的戶型整體輪廓;
分割模塊408,用于基于戶型整體輪廓,將目標圖像分割為墻體區(qū)域和非墻體區(qū)域;
矢量處理模塊410,用于對墻體區(qū)域進行矢量處理,以擬合墻體線條;
矢量圖生成模塊412,用于基于墻體線條,生成建筑戶型的矢量圖。
本發(fā)明實施例提供的上述建筑戶型的矢量圖生成裝置,通過對建筑戶型的原始圖像預處理,得到圖像增強及去除噪聲的目標圖像,基于目標圖像的戶型整體輪廓,將目標圖像分割為墻體區(qū)域和非墻體區(qū)域;進而擬合墻體線條,并生成所述建筑戶型的矢量圖。該裝置可以自動基于建筑戶型的原始圖生成對應的矢量圖,無需人工繪制,不僅節(jié)約了人力成本,而且較好地提升了矢量圖繪制效率。
本實施例所提供的裝置,其實現原理及產生的技術效果和前述實施例相同,為簡要描述,裝置實施例部分未提及之處,可參考前述方法實施例中相應內容。
進一步,本實施例提供了一種終端,該終端包括存儲器以及處理器,存儲器用于存儲支持處理器執(zhí)行建筑戶型的矢量圖生成方法的程序,處理器被配置為用于執(zhí)行存儲器中存儲的程序。
具體可參見圖14所示的一種可應用于本發(fā)明實施例中的終端的結構示意圖。終端100包括建筑戶型的矢量圖生成裝置101、存儲器102、存儲控制器104,一個或多個(圖中僅示出一個)處理器106、外設接口108、射頻模塊110、音頻模塊112、觸控屏幕114等。這些組件通過一條或多條通訊總線/信號線116相互通訊。
存儲器102可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的建筑戶型的矢量圖生成方法、裝置對應的程序指令/模塊,處理器106通過運行存儲在存儲器102內的軟件程序以及模塊,從而執(zhí)行各種功能應用以及數據處理,如本發(fā)明實施例提供的建筑戶型的矢量圖生成方法。
存儲器102可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。處理器106以及其他可能的組件對存儲器102的訪問可在存儲控制器104的控制下進行。
外設接口108將各種輸入/輸出裝置耦合至處理器106以及存儲器102。在一些實施例中,外設接口108,處理器106以及存儲控制器104可以在單個芯片中實現。在其他一些實例中,他們可以分別由獨立的芯片實現。
射頻模塊110用于接收以及發(fā)送電磁波,實現電磁波與電信號的相互轉換,從而與通訊網絡或者其他設備進行通訊。
音頻模塊112向用戶提供音頻接口,其可包括一個或多個麥克風、一個或者多個揚聲器以及音頻電路。
觸控屏幕114在終端100與用戶之間同時提供一個輸出及輸入界面。在本實施例中,上述觸控屏幕114支持單點和多點觸控操作,例如,該觸控屏幕114可為支持單點和多點觸控操作的電容式觸摸屏或電阻式觸摸屏等。支持單點和多點觸控操作是觸控屏幕114能感應到來自該觸摸屏上一個或多個位置處同時產生的觸控操作,并將該感應到的多點觸控操作交由處理器106進行處理。
可以理解,圖14所示的結構僅為示意,終端100還可包括比圖14中所示更多或者更少的組件,或者具有與圖14所示不同的配置。圖14中所示的各組件可以采用硬件、軟件或其組合實現。
本發(fā)明實施例所提供的建筑戶型的矢量圖生成方法、裝置及終端的計算機程序產品,包括存儲了程序代碼的計算機可讀存儲介質,所述程序代碼包括的指令可用于執(zhí)行前面方法實施例中所述的方法,具體實現可參見方法實施例,在此不再贅述。
所述功能如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
最后應說明的是:以上所述實施例,僅為本發(fā)明的具體實施方式,用以說明本發(fā)明的技術方案,而非對其限制,本發(fā)明的保護范圍并不局限于此,盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,其依然可以對前述實施例所記載的技術方案進行修改或可輕易想到變化,或者對其中部分技術特征進行等同替換;而這些修改、變化或者替換,并不使相應技術方案的本質脫離本發(fā)明實施例技術方案的精神和范圍,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。