国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于拍照的戶型圖識別生成三維房型的方法_3

      文檔序號:9524816閱讀:來源:國知局
      hierarchy,CV_RETR_CC0MP,CV_CHAIN_APPR0X_ SIMPLE);
      [0137]doublemaxarea= 0 ;//maxarea表不當前最大輪廓凈面積
      [0138]doubleOutArea;//0utArea表示外圍輪廓面積
      [0139]doubleInArea;/7lnArea表不內包輪廓面積
      [0140]intidx= 0 ;/7idx是用于遍歷外輪廓的輪廓索引
      [0141]intidy= 0 ;//idy是用于遍歷內輪廓的輪廓索引
      [0142]intMax_idx= 0 ;//Max_idx表示輪廓凈面積最大的輪廓索引
      [0143]for( ;idx〉= 0;idx=hierarchy[idx] [0])// 遍歷外輪廓
      [0144] {
      [0145]OutArea=fabs(contourArea(contours[idx]));//fabs求絕對值;contourArea 求當前輪廓面積
      [0146]InArea= 0;
      [0147]for(idy=hierarchy[idx] [2] ;idy〉=0;idy=hierarchy[idy] [0])//遍歷當 前輪廓包含的子輪廓[014 引 {
      [0149]InArea+ =fabs(contourArea(contours[idy]));
      [0150] }
      [015。if(OutArea-InArea〉maxarea){//判斷當前輪廓凈面積是否大于maxarea
      [0152]maxarea=OutArea-InArea;
      [0153]Max_idx=idx;//更新凈面積最大輪廓索引
      [0154] }
      [0155] }
      [0156] 本發(fā)明實施例中對圖4提取的最大邊緣輪廓如圖5所示。
      [0157] 步驟4出OU曲變換。
      [0158] 化U曲變換是一種使用表決原理的參數估計技術。其原理是利用圖像空間和 化U曲參數空間的點一線對偶性,把圖像空間中的檢測問題轉換到參數空間。通過在參數空 間里進行簡單的累加統(tǒng)計,然后在化U曲參數空間尋找累加器峰值的方法檢測直線?;疷曲 變換的實質是將圖像空間內具有一定關系的像元進行聚類,尋找能把運些像元用某一解析 形式聯系起來的參數空間累積對應點。在參數空間不超過二維的情況下,運種變換有著理 想的效果。
      [0159] 本發(fā)明實施例中采用化enCV的化11曲^1163口函數實現該步驟,minRect為步驟3 得到的最大輪廓所圍矩形。代碼如下:
      [0160] 化U曲LinesP函數的原型為:
      [0161]voidHoughLinesP(InputArrayimage,OutputArraylines,doublerho,double theta,intthreshold,doubleminLineLength= 0,doublemaxLineGap= 0)
      [0162] 其中:image為輸入圖像,要求是8位單通道圖像;lines為輸出的直線向量,每條 線用4個元素表示,即直線的兩個端點的4個坐標值;rho和theta分別為距離和角度的分 辨率;t虹eshold為闊值;minLineLength為最小直線長度,如果小于該值,則不被認為是一 條直線;maxLineGap為最大直線間隙,如果有兩條線段是在一條直線上,它們之間有間隙, 如果運個間隙大于該值,則被認為是兩條線段,否則是一條線段。
      [0163] 本發(fā)明實施例中通過如下代碼實現化U曲變換:
      [0164]floatgap=minRect[0].size,width/7 ;
      [016引 floatminlenth=minRect[0].size,width/12 ;
      [016引 Hou曲LinesP(dst,lines, 1,CV_PI/180,minlenth,minlenth,gap);
      [0167] 其中,gap表示步驟3所得的最大邊緣輪廓寬度的l/7,minlenth表示步驟3所得 的最大邊緣輪廓寬度的1/12,minRect[0]是步驟3所得的最大邊緣輪廓。
      [0168] 化U曲LinesP函數中,dst表示經步驟3提取最大邊緣輪廓的圖像,距離分辨 率數值為1,角度分辨率數值為CV_PI/180,闊值設置為minlenth,最小直線長度設置為 minlenth,最大直線間隙設置為gap。
      [0169] 通過試驗表明,采用所述參數,可有效識別出所需線段。
      [0170] 步驟5:提取符合條件的最上、最下、最左和最右四條線段。
      [017。設步驟4得到的直線集合為L則對于直線集合L的任意線段1 (Xi,yi,而,y2),(Χι,yi)和(X2, y2)為線段的兩個端點坐標。對線段1進行如下計算:
      [017引步驟5.1.計算1的夾角和中點坐標柄,y3)如下:
      [0173] 夾角Θ的計算公式為;
      [0174] 步驟5. 2.最左線段11需滿足兩個條件:a. 31 /4《Θ《3 31 /4, b. &值最小;
      [0Π5] 步驟5. 3.最右線段Ir需滿足兩個條件:a. π/4《Θ《3 π/4, b. &值最大。
      [0176] 步驟5. 4.最上線段It需滿足兩個條件:
      [0177] a. 0《Θ《ji/4或33i/4《Θ《ji,b. y3值最??;
      [0178] 步驟5. 5.最下線段化需滿足兩個條件:
      [0179] a. 0《目《π/4或3π/4《目《π,b. y3值最大。
      [0180] 步驟6 :計算矯正前后的兩組消隱點。
      [0181] 對于最左、最右、最上、最下線段11、Ir、It、化:
      [018引步驟6. 1.計算線段11、Ir、It、化所在的直線lleft、Iri曲t、Itop、化ottom ; [018引步驟6. 2.計算直線lleft、Iri曲t、Itop、化ottom兩兩直線所形成的交點,左上、 右上、左下、右下交點分別設為:Pi(Xl, yi)、化(而,y2)、P3(X3, y3)、P4(X4, y4);
      [0184]步驟6. 3.計算直線lleft、Iri曲t、Itop、化ottom所圍成四邊形對角線的交點 Ρ5(Χ5,Υ5);
      [018引 步驟6. 4.計算X坐標和y坐標的矯正量化和dv:化=(而-義1+與-義3)/4;dv= (y;5-yi+y廣72)/4 ;
      [0186] 步驟6.5.計算變換后左上、右上、左下、右下消隱點口1'知1',71')、化'(而',72')、 Ps' (xs', Ys')'P4. y/):
      [0187] x/ = X廣dh 巧1' = y廣dv ;而' =Xs+dh 巧2' = y;rdv ;
      [018引 X3' = X廣dh 巧3' = Ys+dv ;X4' = Xs+dh 巧4' = Ys+dv。
      [0189] 步驟7 :計算透視變換的變換矩陣。
      [0190] 根據步驟6得到的崎變前后的消隱點,計算變換矩陣。通用的變換公式為:
      [0191]
      [019引U,V是變換前坐標,X,y是變換后坐標,其中X=X' /V,y=y' /V。
      [0193] 通常W= 1,根據矩陣乘法法則,上面的變換公式改寫為:
      [0194]
      [0195] [X,y]對應步驟 6. 5 中的消隱點Pi'(V,y/)、口2'(而',72')、口3' 柄',73')、 口4'(V,y/ ),山V]對應步驟 6. 2 中的點Pi(Xi,yi)、口2 (而,y2)、口3 柄,y3)、口4 (X4,y4),通常曰33 -1。把遠八個點代入改與后的變換公式,聯^^萬^^求取曰。,曰12,曰13,曰21,曰22,曰23,曰31,曰32,曰33。
      [0196]
      為所要計算的變換矩陣。
      [0197] 本實例所得的變換矩陣為
      [019引本發(fā)明實施例中得到如圖6所示的矯正前后的兩組消隱點的連線圖,比較規(guī)則矩 形的是矯正后的消隱點的連線圖,比較傾斜的是矯正前的消隱點的連線圖。
      [0199] 步驟8:透視變換。
      [0200] 透視變換(PerspectiveTransformation)是指利用透視中屯、、像點、目標點Ξ點 共線的條件,按透視旋轉定律使承影面(透視面)繞跡線(透視軸)旋轉某一角度,破壞原 有的投影光線束,仍能保持承影面上投影幾何圖形不變的變換。透視變換是中屯、投影的射 影變換,在用非齊次射影坐標表達時是平面的分式線性變換。透視變換常用于圖像的校正。 圖7是本發(fā)明實施例中進行透視變換矯正后的圖像。
      [020。 步驟9:剪取戶型圖區(qū)域。
      [0202] 根據步驟6中的崎變后的消隱點坐標,向四邊放寬d個像素,在透視變換矯正的圖 像中剪取戶型圖區(qū)域。d為正整數。本發(fā)明實施例中設置d=(化+dv)/10,可取得有效合 理的戶型圖區(qū)域。
      [020引圖8為剪取的戶型圖區(qū)域。
      [0204]步驟10 :輪廓檢測。戶型圖的外圍輪廓基本上是由墻體組成,并且外圍輪廓之外 的區(qū)域一般是顏色均勻分布的背景,基于戶型圖具有的運樣的特點,使用傳統(tǒng)的自動闊值 分割方法可獲得戶型圖的外形輪廓。如圖9為本發(fā)明實施例所獲得的外圍輪廓圖。
      [020引步驟11對戶型圖進行墻體自適應闊值分割,得到二值圖。
      [0206] 首先根據步驟10檢測出的外形輪廓區(qū)域進行自適應闊值分割,獲得墻體區(qū)域;然 后計算出墻體區(qū)域平均灰度W與非墻體區(qū)域平均灰度0,得到墻體分割闊值T= (W+0)/2 ; 最后,利用分割闊值T對步驟9得到的灰度圖進行處理,得到二值圖。
      [0207]
      [0208] 其中,I(x,y)為戶型灰度圖在(x,y)點的像素值,r(x,y)為經闊值分割后的圖像 在(x,y)點的像素。本步驟可W剔除掉家具、地板、裝飾物品等干擾信息,只呈現墻體信息, W利于進一步單獨對墻體進行識別。如圖10為本發(fā)明實施例獲得的闊值分割圖。
      [0209] 步驟12 :對步驟11所得的二值圖進行腐蝕和膨脹,過濾一些小的干擾信息。如圖 11為本發(fā)明實施例得到的腐蝕膨脹處理后的二值圖。
      [0210] 步驟13 :對步驟12處理后的二值圖進行邊緣檢測,得到邊緣圖像。進行邊緣檢測 可檢測出墻體的邊緣。如圖12為本發(fā)明實施例在該步驟得到的邊緣圖像。
      [0211] 步驟14出OU曲變換;
      [0212] 對邊緣圖像進行化U曲變換,墻體邊緣線被擬合成多條線段Lines。
      [0213] 步驟15 :對步驟14得到的邊緣線段根據傾斜角度分類為橫線和豎線兩個集合;
      [0214]對于線段集合Lines中的任意線段1 (Xi,yi,而,y2),(Xi,yi)和(而,y2)為線段
      當前第3頁1 2 3 4 5 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1