(57)【要約】【課題】ひび点を代表するひび線の候補の中から最長かつ連続するひび線群に対応するストロークを抽出することを目的とする。【解決手段】構造物を撮影して取得された画像を複数の領域に分割し、複数の領域の内、複数のひび点を含む複数の対象領域について、複数の対象領域毎に複数の対象領域の各々に含まれる複数のひび点を代表する代表線分を基本線分として抽出する。抽出された基本線分の内、端点どうしが近接する基本線分に基づいて、特定の基本線分の端点をルートとする木構造を生成する。生成した木構造の複数の経路の内、基本線分間で接続可能な度合いを示す値が最も高く、かつ、接続した基本線分の合計の長さが最も長い基本線分群に対応する、木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する。【選択図】図２Ｅ
2020113052.tif 000002
【特許請求の範囲】
【請求項１】
構造物を撮影して取得された画像を複数の領域に分割し、前記複数の領域の内、複数のひび点を含む複数の対象領域について、前記複数の対象領域毎に前記複数の対象領域の各々に含まれる複数のひび点を代表する代表線分を基本線分として抽出する線分抽出部と、
抽出された前記基本線分の内、端点どうしが近接する基本線分に基づいて、特定の基本線分の端点をルートとする木構造を生成する木構造生成部と、
生成した前記木構造の複数の経路の内、基本線分間で接続可能な度合いを示す値が最も高く、かつ、接続した基本線分の合計の長さが最も長い基本線分群に対応する、前記木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出するストローク抽出部と、
を含む、ひび線抽出装置。
【請求項２】
前記ストローク抽出部は、
前記木構造から前記ストロークに対応する経路を取り除いた残りの経路の内、基本線分間で接続可能な度合いを示す値が高く、かつ、接続した基本線分の合計の長さが最も長い線分群に対応する、前記木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する、
請求項１に記載のひび線抽出装置。
【請求項３】
前記接続可能な度合いは、隣接する基本線分間の距離、基本線分どうしのなす角度、及び、隣接する領域に存在する基本線分各々の共通する境界上の端点と該端点に最も近いひび点との距離、の少なくとも１つに基づいて決定される、
請求項１または請求項２に記載のひび線抽出装置。
【請求項４】
前記線分抽出部は、
前記対象領域内の複数のひび点と抽出された前記代表線分との間の距離の平均値が閾値より大きい対象領域をさらに複数の小領域に分割し、
前記複数の小領域の内、複数のひび点を含む小領域を新たな対象領域として前記代表線分を抽出する、
請求項１〜請求項３の何れか１項に記載のひび線抽出装置。
【請求項５】
前記代表線分の両端点を、前記ひび点を代表した状態を保持したまま、前記接続可能な度合いが高くなるように移動することで端点移動線分を生成して前記基本線分に加える端点移動部、
をさらに含む、請求項１〜請求項４の何れか１項に記載のひび線抽出装置。
【請求項６】
コンピュータが、
構造物を撮影して取得された画像を複数の領域に分割し、前記複数の領域の内、複数のひび点を含む複数の対象領域について、前記複数の対象領域毎に前記複数の対象領域の各々に含まれる複数のひび点を代表する代表線分を基本線分として抽出し、
抽出された前記基本線分の内、端点どうしが近接する基本線分に基づいて、特定の基本線分の端点をルートとする木構造を生成し、
生成した前記木構造の複数の経路の内、基本線分間で接続可能な度合いを示す値が最も高く、かつ、接続した基本線分の合計の長さが最も長い基本線分群に対応する、前記木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する、
ひび線抽出方法。
【請求項７】
構造物を撮影して取得された画像を複数の領域に分割し、前記複数の領域の内、複数のひび点を含む複数の対象領域について、前記複数の対象領域毎に前記複数の対象領域の各々に含まれる複数のひび点を代表する代表線分を基本線分として抽出し、
抽出された前記基本線分の内、端点どうしが近接する基本線分に基づいて、特定の基本線分の端点をルートとする木構造を生成し、
生成した前記木構造の複数の経路の内、基本線分間で接続可能な度合いを示す値が最も高く、かつ、接続した基本線分の合計の長さが最も長い基本線分群に対応する、前記木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する、
ひび線抽出処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ひび線抽出装置、ひび線抽出方法、及び、ひび線抽出プログラムに関する。
【背景技術】
【０００２】
橋などの構造物のひびの状態を点検するために、構造物の表面のひびを図面に記録する作業が目視及び手描きによって行われている。作業員は、例えば、写真などを参照しながら手描きでひび線を図面に記入する。ひび線は、ストローク、即ち、ひび線を含む最長かつ連続する線で記入される。しかしながら、当該作業には時間及び手間がかかる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６３−２２８２６９号公報
【０００４】
作業の時間及び手間を低減するため、カメラ撮影画像からひび線を自動抽出する技術が存在する。当該技術では、画像を複数の矩形領域に分割し、各矩形領域内で画像を回転、投影することで、画像内の線分の幅、長さ、方向、及び座標位置などの特徴を取得する。その後、隣接する線分どうしのなす角が１８０°に近く、隣接する線分の端点どうしの距離が短く、隣接する線分の中点が略水平に並ぶ配置である場合、または、隣接する線分が交差している場合に、隣接する２つの線分を統合する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記技術では、矩形領域から抽出した隣接する２つの線分間の関連情報だけを使用して線分を統合するため、ひび線の候補の中で最長かつ連続するひび線が取得されない可能性が存在する。また、線分を統合する際に、ひび点の連続性を考慮していないため、実際には連続していない線分を統合する虞が存在する。
【０００６】
本発明は、１つの側面として、ひび点を代表するひび線の候補の中から最長かつ連続するひび線群に対応するストロークを抽出することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施形態では、構造物を撮影して取得された画像を複数の領域に分割し、複数の領域の内、複数のひび点を含む複数の対象領域について、複数の対象領域毎に複数の対象領域の各々に含まれる複数のひび点を代表する代表線分を基本線分として抽出する。抽出された基本線分の内、端点どうしが近接する基本線分に基づいて、特定の基本線分の端点をルートとする木構造を生成する。生成した木構造の複数の経路の内、基本線分間で接続可能な度合いを示す値が最も高く、かつ、接続した基本線分の合計の長さが最も長い基本線分群に対応する、木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する。
【発明の効果】
【０００８】
本発明は、１つの側面として、ひび点を代表するひび線の候補の中から最長かつ連続するひび線群に対応するストロークを抽出することを可能とする。
【図面の簡単な説明】
【０００９】
【図１】ひび線抽出装置の要部機能の一例を示すブロック図である。
【図２Ａ】領域及びひび点を例示する概念図である。
【図２Ｂ】代表線分を例示する概念図である。
【図２Ｃ】領域を分割した小領域を例示する概念図である。
【図２Ｄ】代表線分を例示する概念図である。
【図２Ｅ】端点移動線分を例示する概念図である。
【図３】矩形領域境界上及び矩形領域境界付近のひび点の処理を説明する概念図である。
【図４Ａ】端点移動線分の生成処理を説明する概念図である。
【図４Ｂ】端点移動線分の生成処理を説明する概念図である。
【図５Ａ】線分集合に含まれる代表線分及び端点移動線分を例示する概念図である。
【図５Ｂ】木構造の一例を示す概念図である。
【図６Ａ】代表線分の一例を示す概念図である。
【図６Ｂ】端点移動線分の一例を示す概念図である。
【図７】傾斜差の度合いを説明する概念図である。
【図８】連続性の度合いを説明する概念図である。
【図９】ひび線抽出装置のハードウェアの一例を示すブロック図である。
【図１０】ひび線抽出処理の流れの一例を示すフローチャートである。
【図１１】線分抽出処理の流れの一例を示すフローチャートである。
【図１２】端点移動処理の流れの一例を示すフローチャートである。
【図１３】線分集合抽出処理の流れの一例を示すフローチャートである。
【図１４】ストローク抽出処理の流れの一例を示すフローチャートである。
【図１５】木構造生成処理の流れの一例を示すフローチャートである。
【図１６Ａ】本実施形態で抽出されるストロークの一例を示すフローチャートである。
【図１６Ｂ】関連技術で抽出されるストロークの一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施形態の一例を詳細に説明する。
【００１１】
図１に例示するひび線抽出装置１０は、ひび点入力部１１、領域分割部１２、線分抽出部１３、端点移動部１４、線分集合抽出部１５、木構造生成部１６、及びストローク抽出部１７を含む。
【００１２】
ひび点入力部１１は、例えば、橋などの構造物の表面を撮影したひび点を含む画像に、減色及び強調などの既存の前処理を加えることで、ひび点を顕在化した画像を入力する。ひび点は、ひびを表す点であり、ひび線に含まれる場合が多いが、独立に存在してもよい。領域分割部１２は、画像を所定サイズの複数の領域に分割する。各領域は、例えば、１００画素×１００画素の矩形領域であってよい。図２Ａは、画像を領域Ｒ１１及びＲ１２に分割した状態、及び、丸印で表したひび点の一例を示す。
【００１３】
線分抽出部１３は、領域Ｒ１１、Ｒ１２の各々から１つの代表線分を抽出する。代表線分は、領域内に含まれるひび点を代表する線分であり、領域どうしの境界まで延びる直線である。代表線分は、例えば、ひび点の各々の座標情報を使用して取得される回帰直線であってよい。
【００１４】
回帰直線とは、ひび点の分布傾向を表す直線であり、ひび点の各々の座標情報から最小二乗法によって算出される。これにより、ひび点が飛び飛びで検出され、雑音を含む場合であっても、適切にひび点を代表する代表線分を取得することができる。
【００１５】
代表線分とひび点との距離の平均値が所定の閾値よりも大きい場合、線分抽出部１３は、領域を小領域に相当する複数の領域にさらに分割し、分割した小領域の各々から１つの代表線分を抽出する。代表線分とひび点との距離の平均値が所定の閾値以下になるまで、領域の分割及び代表線分の抽出を繰り返す。
【００１６】
代表線分とひび点との距離の平均値が所定の閾値より大きい場合、領域内のひび点が２つ以上の線分に代表される可能性が高いためである。所定の閾値は、例えば、５画素であってよい。なお、代表線分とひび点との距離の平均値に代えて、例えば、代表線分とひび点との距離の最大値を使用してもよいし、代表線分とひび点との距離の分散値を使用してもよい。
【００１７】
図２Ｂは、領域Ｒ１１内に含まれる複数のひび点を代表する代表線分ＬＳ１１及び領域Ｒ１２内に含まれる複数のひび点を代表する代表線分ＬＳ１２の一例を示す。線分抽出部１３は、各ひび点の代表線分までの距離の平均値が所定の閾値より大きいか否か、領域毎に判断する。図２Ｂに例示されるように、領域Ｒ１１では、ひび点の代表線分ＬＳ１１までの距離の平均値が所定の閾値以下であり、領域Ｒ１２では、ひび点の代表線分ＬＳ１２までの距離の平均値が所定の閾値より大きい、場合について説明する。
【００１８】
距離の平均値が所定の閾値より大きい領域Ｒ１２を小領域に相当する複数の領域にさらに分割する。図２Ｃでは、領域Ｒ１２を４つの小領域Ｒ２１、Ｒ２２、Ｒ２３、及びＲ２４に分割する例を示す。線分抽出部１３は、小領域の各々から１つの代表線分を抽出する。図２Ｄは、領域Ｒ２１内のひび点を代表する線分ＬＳ２１及び領域Ｒ２３内のひび点を代表する線分ＬＳ２３の一例を示す。小領域Ｒ２２及びＲ２４にはひび点が存在しないため、代表線分は抽出されていない。
【００１９】
なお、矩形領域境界上に代表線分が存在する場合、上記方法では代表線分を抽出することができない。したがって、矩形領域境界上もしくはその付近に所定数以上のひび点が存在する場合、矩形領域境界が縦方向であれば、矩形領域境界に沿った縦方向の線分を抽出し、矩形領域境界が横方向であれば、矩形領域境界に沿った横方向の線分を抽出する。抽出した縦方向の線分または横方向の線分の近傍に、矩形領域のひび点を代表する代表線分が既に存在する場合、抽出した縦方向の線分または横方向の線分は除去する。
【００２０】
図３に矩形領域境界上及び矩形領域境界付近にひび点が存在する場合を例示する。例えば、Ｆ１１及びＦ１２で示す矩形領域境界上及び矩形領域境界付近には所定数以上のひび点が存在するため、矩形領域境界に沿った縦方向の線分を代表線分として抽出する。Ｆ１２で示す矩形領域境界付近には、矩形領域のひび点を代表する代表線分ＲＳが既に存在するため、Ｆ１２で抽出した縦方向の線分は除去する。代表線分ＲＳの方が、矩形領域境界に沿った線分よりひび点を適切に代表する線分である可能性が高いためである。
【００２１】
端点移動部１４は、代表線分の領域境界上の端点を移動することで、領域内のひび点を適切に代表すると共に、隣接する領域の線分との接続可能な度合いを向上させる端点移動線分を生成する。
【００２２】
端点移動部１４は、例えば、領域境界上にひび点が存在する場合、第１端点から最も近い領域境界上のひび点か、ひび点の代表線分への投影点が代表線分の第２の端点から最も遠い当該ひび点に、第１の端点を移動する。どちらに移動するかは、どちらに移動した場合に、線分が領域内のひび点を適切に代表するかに依存して決定する。領域境界上にひび点が存在しない場合、ひび点の代表線分への投影点が代表線分の第２の端点から最も遠い当該ひび点に、第１の端点を移動する。
【００２３】
図２Ｅは、図２Ｄで例示した代表線分ＬＳ１１に対応する端点移動線分ＬＳ１６、代表線分ＬＳ２１に対応する端点移動線分ＬＳ２６、及び代表線分ＬＳ２３に対応する端点移動線分ＬＳ２８を例示する。図２Ｅにおいて、代表線分を破線で表し、端点移動線分を実線で表す。
【００２４】
端点移動線分ＬＳ１６は、代表線分ＬＳ１１の第１の端点を、ひび点の代表線分への投影点が第２の端点から最も遠いひび点に移動し、第２の端点を、ひび点の代表線分への投影点が第１の端点から最も遠いひび点に移動することで生成される。
【００２５】
端点移動線分ＬＳ２６は、代表線分ＬＳ２１の第１の端点を、ひび点の代表線分への投影点が第２の端点から最も遠いひび点に移動し、第２の端点を、領域境界上の第２の端点に最も近いひび点に移動することで生成される。端点移動線分ＬＳ２８は、領域境界上の第１の端点を、ひび点の代表線分への投影点が第２の端点から最も遠いひび点に移動し、第２の端点を、ひび点の代表線分への投影点が第１の端点から最も遠いひび点に移動することで生成される。
【００２６】
図４Ａ及び図４Ｂを使用して、端点移動線分生成処理の一例を説明する。端点移動部１４は、図４Ａに例示するように、領域境界上のひび点の内、代表線分ＬＳ４１の一方の端点Ｅ４１から、領域境界に沿って最も近いひび点をＣ４１に設定する。
【００２７】
次に、端点移動部１４は、領域境界上のひび点の内、代表線分ＬＳ４１の他方の端点Ｅ４２から、領域境界に沿って最も近いひび点をＣ４２に設定する。端点移動部１４は、領域内のひび点を線分ＬＳ４１に投影した投影点の内、端点Ｅ４１から最も遠い投影点をＰ４１に設定し、投影点の内、端点Ｅ４２から最も遠い投影点をＰ４２に設定する。
【００２８】
端点移動部１４は、４つの線分Ｃ４１−Ｃ４２、Ｃ４１−Ｐ４１、Ｐ４２−Ｃ４２、Ｐ４２−Ｐ４１の内、線分の近傍に存在するひび点の数が最大である線分の端点に代表線分ＬＳ４１の両端点を移動する。図４Ａの例では、線分Ｃ４１−Ｐ４１の近傍に存在するひび点の数が最大であるため、端点Ｅ４１をＣ４１に移動し、端点Ｅ４２をＰ４１に移動することで端点移動線分を生成する。図４Ｂは生成された端点移動線分ＬＳ４２を例示する。
【００２９】
線分集合抽出部１５は、基本線分の一例である代表線分及び端点移動線分から端点間が近接する線分集合を抽出する。線分集合抽出部１５は、代表線分及び端点移動線分の内から１つの線分Ａを選択し線分集合に入れる。
【００３０】
線分集合抽出部１５は、線分Ａの端点と何れか一方の端点との距離が所定の閾値より小さい線分Ｂを、代表線分及び端点移動線分の内から選択し、線分集合に入れる。線分Ｂは複数存在してもよい。
【００３１】
線分集合抽出部１５は、線分Ｂを線分Ａに設定し、線分Ａの端点との端点間距離が所定の閾値より小さい線分Ｂが存在しなくなるまで、上記と同様の処理を繰り返す。線分Ａの端点との端点間距離が所定の閾値より小さい線分Ｂが存在しない場合、線分集合抽出部１５は、線分集合内の線分を処理済みに設定し、線分集合を記録した後、未処理の線分を使用して、次の線分集合を生成する。
【００３２】
木構造生成部１６は、線分集合に含まれる線分から木構造を生成する。木構造生成部１６は、線分集合に含まれる線分の内から、最も左の線分を選択し当該線分の左の端点をルートとするか、または、最も上の線分を選択し当該線分の上の端点をルートとする。例えば、線分集合全体の形状が横方向に延びている場合には、最も左の線分を選択し、線分集合全体の形状が縦方向に延びている場合には、最も上の線分を選択する。
【００３３】
木構造生成部１６は、線分集合に含まれる線分から、ルートに近い端点とルートとの距離が所定の閾値以下である線分を選択し、当該線分のルートに近い端点をルートに接続する。ルートに接続される線分は木構造の枝であり、複数存在してもよい。
【００３４】
木構造生成部１６は、ルートをもつ線分、及びルートに接続されている線分のルートから遠い端点を成長点とし、線分集合に含まれる線分から、成長点に近い端点との端点間距離が所定の閾値以下である線分を選択し、当該成長点に近い端点を成長点に接続する。成長点に成長線分として接続される線分は、木構造の枝であり、複数存在してもよい。
【００３５】
木構造生成部１６は、成長線分の成長点と異なる端点を新たな成長点とし、線分集合に含まれる線分から、新たな成長点に近い端点との端点間距離が所定の閾値以下である線分を選択し、当該新たな成長点に近い端点を新たな成長点に接続する処理を繰り返す。
【００３６】
新たな成長点に新たな成長線分として接続される線分は、複数存在してもよい。新たな成長点に近い端点との端点間距離が所定の閾値以下である線分が存在しない場合、木構造に含まれる線分を処理済み線分とし、木構造を記録した後、未処理線分を使用して新たな木構造を生成する。
【００３７】
図５Ａ及び図５Ｂを使用して、線分集合が線分ＬＳ５１〜ＬＳ６０を含む場合の木構造生成の一例を説明する。図５Ａにおいて、実線は、代表線分を表し、破線は、端点移動線分を表す。木構造生成部１６は、線分集合の全体的な形状が横方向に延びているため、図５Ａの最も左の線分ＬＳ５１を選択し、図５Ｂに例示するように木構造に追加し、線分ＬＳ５１の左の端点をルートとする。
【００３８】
木構造生成部１６は、ルートから所定距離内に端点を有する線分ＬＳ５２を選択し、図５Ｂに例示するように木構造に追加する。線分ＬＳ５１及びＬＳ５２は、木構造の枝である。図５Ａの例では、他にルートから所定距離内に端点を有する線分は存在しないため、線分ＬＳ５１のルートとは異なる端点及び線分ＬＳ５２のルートとは反対側の端点を成長点に設定する。
【００３９】
木構造生成部１６は、線分ＬＳ５１の成長点から所定距離内に端点を有する線分ＬＳ５３及びＬＳ５４を選択し、図５Ｂに例示するように木構造に追加する。線分ＬＳ５３及びＬＳ５４は、木構造の枝である。また、木構造生成部１６は、線分ＬＳ５２の成長点から所定距離内に端点を有する線分ＬＳ５６を選択し、図５Ｂに例示するように木構造に追加する。線分ＬＳ５６は、木構造の枝である。
【００４０】
木構造生成部１６は、線分ＬＳ５１及びＬＳ５２の成長点から遠い、線分ＬＳ５３、ＬＳ５４及びＬＳ５６の端点を新たな成長点に設定する。以降の詳細な説明は省略するが、木構造生成部１６は、成長点から所定距離内に端点を有する線分が存在しなくなるまで、同様の処理を繰り返すことで線分集合毎に木構造を生成する。
【００４１】
なお、木構造を生成する際に、基本線分の一例である代表線分及び端点移動線分の双方を使用する例について説明したが、本実施形態は、これに限定されない。例えば、代表線分または端点移動線分の何れか一方だけを使用して木構造を生成してもよい。
【００４２】
しかしながら、図６Ａに白線で例示する代表線分が抽出された場合、隣接する領域間で代表線分の端点どうしの間の距離が長く、適切な木構造が生成される可能性は低い。一方、図６Ｂに白線で例示する、図６Ａの代表線分から生成した端点移動線分は、隣接する領域間で端点どうしの間の距離が短く、適切な木構造が生成される可能性が高い。したがって、図６Ａに例示する代表線分が抽出された場合であっても、木構造を生成する際に、代表線分だけでなく端点移動線分も使用することで、最長かつ連続するひび線群に対応するストロークを抽出することができる可能性を向上させることができる。
【００４３】
ストローク抽出部１７は、木構造に含まれる複数の経路から、接続可能な度合いが高く、かつ、最も長い、最上位から最下位までの経路を選択することでストロークを抽出する。ストローク抽出部１７は、木構造の最上位から最下位までの経路毎の指標値ＰＶを、例えば、式（１）を使用して算出する。
ＰＶ＝ｗ・ＴＬ＋（１−ｗ）・ＴＰ    …（１）
【００４４】
ＴＬは、経路内の線分の長さの合計であり、ＴＰは、経路毎の接続可能な度合いである。ｗ（０≦ｗ≦１）は、所定の重み係数である。経路内の線分の長さの合計ＴＬは、例えば、式（２）を使用して算出される。
【数１】
2020113052.tif 000003
Ｎは経路内の線分の数であり、ＬＥＮｉは、経路内でｉ番目の線分の長さを表す。
【００４５】
経路毎の接続可能な度合いＴＰは、例えば、式（３）を使用して算出する。
【数２】
2020113052.tif 000004
【００４６】
ｊ＝ｉ＋１であり、ｐｉｊは、ｉ番目とｊ番目、即ち、経路内で隣接する線分間の接続可能な度合いである。接続可能な度合いｐｉｊは、例えば、式（４）を使用して算出する。
ｐｉｊ＝ｐｇｉｊ・ｐａｎｉｊ・ｐｃｏｎｉｊ    …（４）
【００４７】
ｐｇｉｊは、経路内のｉ番目の線分とｊ番目の線分との間の距離の度合いであり、ｐａｎｉｊはｉ番目とｊ番目の線分間の傾斜差の度合いであり、ｐｃｏｎｉｊはｉ番目の線分とｊ番目の線分との間の連続性の度合いである。距離の度合いｐｇｉｊは、隣接する基本線分間の距離に基づいて算出される値であり、例えば、式（５）を使用して算出する。
ｐｇｉｊ＝ｍａｘ（１−ＤＤｉｊ／ｃｔ１，０）    …（５）
【００４８】
ＤＤｉｊは、ｊ番目の線分に近い方のｉ番目の線分の端点と、ｉ番目の線分に近い方のｊ番目の線分の端点との間の距離である。ＤＤｉｊは、ｉ番目の線分の端点の座標が（ｘｉ，ｙｉ）であり、ｊ番目の線分の端点の座標が（ｘｊ，ｙｊ）である場合、例えば、式（６）を使用して算出される。
【数３】
2020113052.tif 000005
【００４９】
ｃｔ１は、所定の定数であり、式（５）では、端点間の距離ＤＤｉｊがｃｔ１の値より大きい場合、１−ＤＤｉｊ／ｃｔ１は負の値となり、ｐｇｉｊは０に設定されるため、端点間の距離の度合いｐｇｉｊは、０以上１以下の値となる。端点間の距離ＤＤｉｊが０である場合、ｐｇｉｊは１となる。ｃｔ１は、例えば、領域の高さまたは幅の値であってよく、例えば、１００画素であってよい。
【００５０】
傾斜差の度合いｐａｎｉｊは、基本線分どうしのなす角度に基づいて算出される値であり、例えば、式（７）で算出される。
ｐａｎｉｊ＝ｍａｘ（ｃｏｓ（ｄａｎｉｊ），ｅ）    …（７）
ｄａｎｉｊは、ｉ番目の線分ＬＳｉとｊ番目の線分ＬＳｊとの傾斜差であり、例えば、図７に例示するように、線分ＬＳｉを延長した線ＨＬｉと線分ＬＳｊを延長した線ＨＬｊとがなす角の内、小さい方の角度である。したがって、ｄａｎｉｊは、０［ｒａｄ］以上π／２［ｒａｄ］以下の値となる。
【００５１】
ｅは十分小さい所定の値であり、例えば、０．００１であってよい。傾斜差ｄａｎｉｊがπ／２［ｒａｄ］である場合、ｃｏｓ（ｄａｎｉｊ）は０となるが、式（７）では、傾斜差の度合いｐａｎｉｊを０とせずｅとするため、傾斜差の度合いｐａｎｉｊは、ｅ以上１以下の値となる。傾斜差が０［ｒａｄ］の場合、傾斜差の度合いｐａｎｉｊは１となる。
【００５２】
連続性の度合いｐｃｏｎｉｊは、隣接する領域に存在する基本線分各々の共通する境界上の端点と該端点に最も近いひび点との距離に基づいて算出される値であり、例えば、式（８）を使用して算出される。
ｐｃｏｎｉｊ＝ｐｃｏｉ・ｐｃｏｊ    …（８）
ｐｃｏｉ＝ｍａｘ（１−ｄｉ／ｃｔ２，０）    …（９）
ｐｃｏｊ＝ｍａｘ（１−ｄｊ／ｃｔ２，０）    …（１０）
【００５３】
図８に例示するように、ｄｉは、基本線分ＬＳｉの境界ＢＬｉｊ上の端点Ｅｉと端点Ｅｉに最も近い領域Ｒｉ内のひび点との距離であり、ｄｊは、基本線分ＬＳｊの境界ＢＬｉｊ上の端点Ｅｊと端点Ｅｊに最も近い領域Ｒｊ内のひび点との距離である。ｃｔ２は、所定の値であり、例えば、領域の高さまたは幅と同じ値であってよく、例えば、１００画素であってよい。
【００５４】
距離ｄｉがｃｔ２の値より大きい場合、１−ｄｉ／ｃｔ２は負の値となるが、式（９）によれば０となるため、ｐｃｏｉは０以上１以下の値となる。距離ｄｉが０である場合、即ち、線分ＬＳｉの境界ＢＬｉｊ上の端点Ｅｉと端点Ｅｉに最も近いひび点とが一致する場合、ｐｃｏｉは１となる。
【００５５】
距離ｄｊがｃｔ２の値より大きい場合、１−ｄｊ／ｃｔ２は負の値となるが、式（１０）によれば０となるため、ｐｃｏｊは０以上１以下の値となる。距離ｄｊが０である場合、即ち、線分ＬＳｊの境界ＢＬｉｊ上の端点Ｅｊと端点Ｅｊに最も近いひび点とが一致する場合、ｐｃｏｊは１となる。
【００５６】
したがって、線分ＬＳｉの境界ＢＬｉｊ上の端点Ｅｉと端点Ｅｉに最も近いひび点とが一致し、かつ、線分ＬＳｊの境界ＢＬｉｊ上の端点Ｅｊと端点Ｅｊに最も近いひび点とが一致する場合に、連続性の度合いｐｃｏｎｉｊは１となる。ストローク抽出部１７は、木構造に含まれる複数の経路から、木構造の最上位から最下位までの経路の指標値ＰＶが最大となる経路を選択することでストロークを抽出する。これにより、本実施形態では、ひび点を代表するひび線の候補の中から最長かつ連続するひび線群に対応するストロークを抽出することができる。
【００５７】
ストローク抽出部１７は、抽出したストロークを記録した後、当該ストロークに対応する経路を木構造から削除する。ストローク抽出部１７は、木構造に含まれる残りの経路から、木構造の最上位から最下位までの経路の指標値ＰＶが最大となる経路を選択することでストロークを抽出する処理を繰り返す。ひび線は分岐している場合があるため、１つの木構造に複数のストロークが存在する可能性があるためである。ストローク抽出部１７は、選択可能な経路が存在しない場合、ストローク抽出処理を終了する。
【００５８】
ストローク抽出部１７は、所定数以上の枝、即ち、線分を含む経路が存在しない場合に、ストローク抽出処理を終了してもよい。なお、接続可能な度合いとして、距離の度合い、傾斜差の度合い、及び連続性の度合いを使用する例について説明したが、本実施形態はこれに限定されない。例えば、接続可能な度合いとして、距離の度合い、傾斜差の度合い、及び連続性の度合いの内、何れか２つまたは１つを使用してもよい。何れか２つを使用する場合、例えば、距離の度合い及び傾斜差の度合いを使用してもよい。
【００５９】
なお、接続可能な度合いＴＰは、経路内で隣接する線分間ではなく、経路内の全ての線分どうしについて、例えば、式（１１）で算出してもよい。
2020113052.tif 000006
この場合、ｐｉｋは式（１２）で算出される。
ｐｉｋ＝ｐｇｉｋ・ｐａｎｉｋ・ｐｃｏｎｉｋ    …（１２）
【００６０】
図９に、ひび線抽出装置１０のハードウェア構成を例示する。ひび線抽出装置１０は、一例として、図９に示すように、ＣＰＵ（Central Processing Unit）５１、一次記憶部５２、二次記憶部５３、及び、外部インターフェイス５４を含む。ＣＰＵ５１は、ハードウェアであるプロセッサの一例である。ＣＰＵ５１、一次記憶部５２、二次記憶部５３、及び、外部インターフェイス５４は、バス５９を介して相互に接続されている。
【００６１】
一次記憶部５２は、例えば、ＲＡＭ（Random Access Memory）などの揮発性のメモリである。二次記憶部５３は、例えば、ＨＤＤ（Hard Disk Drive）、又はＳＳＤ（Solid State Drive）などの不揮発性のメモリである。
【００６２】
二次記憶部５３は、プログラム格納領域５３Ａ及びデータ格納領域５３Ｂを含む。プログラム格納領域５３Ａは、一例として、ひび線抽出プログラムなどのプログラムを記憶している。データ格納領域５３Ｂは、一例として、ひび点の情報及びひび線抽出プログラムを実行している間に生成される中間データなどを記憶する。
【００６３】
ＣＰＵ５１は、プログラム格納領域５３Ａからひび線抽出プログラムを読み出して一次記憶部５２に展開する。ＣＰＵ５１は、ひび線抽出プログラムをロードして実行することで、図１のひび点入力部１１、領域分割部１２、線分抽出部１３、端点移動部１４、線分集合抽出部１５、木構造生成部１６、及びストローク抽出部１７として動作する。
【００６４】
なお、ひび線抽出プログラムなどのプログラムは、外部サーバに記憶され、ネットワークを介して、一次記憶部５２に展開されてもよい。また、ひび線抽出プログラムなどのプログラムは、ＤＶＤ（Digital Versatile Disc）などの非一時的記録媒体に記憶され、記録媒体読込装置を介して、一次記憶部５２に展開されてもよい。
【００６５】
外部インターフェイス５４には外部装置が接続され、外部インターフェイス５４は、外部装置とＣＰＵ５１との間の各種情報の送受信を司る。図９では、外部インターフェイス５４に、外部記憶装置５５Ａ、カメラ５５Ｂ、及びディスプレイ５５Ｃが接続されている例を示している。
【００６６】
橋などの構造物の表面を撮影したひび点を含む画像は、外部記憶装置５５Ａに記録されていてもよし、カメラ５５Ｂで撮影されてもよい。また、抽出されたストロークは外部記憶装置５５Ａに記録されてもよいし、ディスプレイ５５Ｃに画像として表示されてもよい。なお、構造物は、例えば、建物の壁、道路などであってもよい。
【００６７】
外部記憶装置５５Ａ、カメラ５５Ｂ、及びディスプレイ５５Ｃは、外部インターフェイス５４に接続されていなくてもよいし、これらの内、１つまたは２つだけが外部インターフェイス５４に接続されていてもよい。また、外部記憶装置５５Ａ、カメラ５５Ｂ、及びディスプレイ５５Ｃの内、何れかまたは全部は、ひび線抽出装置１０に内蔵されていてもよいし、ネットワークを介して、ひび線抽出装置１０と離隔した位置に配置されていてもよい。
【００６８】
また、ひび線抽出装置１０は、専用装置であってもよいし、ワークステーション、パーソナルコンピュータ、またはタブレットなどの汎用装置であってもよい。
【００６９】
次に、ひび線抽出処理の作用の概要について説明する。図１０は、ひび線抽出処理の流れを例示する。ＣＰＵ５１は、ステップ１０１で、線分抽出処理を実行し、ステップ１０２で、端点移動処理を実行し、ステップ１０３で、線分集合抽出処理を実行し、ステップ１０４で、ストローク抽出処理を実行する。
【００７０】
図１１に、図１０のステップ１０１の線分抽出処理の流れを例示する。ＣＰＵ５１は、ステップ１１１で、構造物を撮影して取得された画像を所定サイズの領域に分割する。ＣＰＵ５１は、ステップ１１２で、未処理領域が存在するか否か判定する。ステップ１１２の判定が否定された場合、ＣＰＵ５１は、線分抽出処理を終了する。
【００７１】
ステップ１１２の判定が肯定された場合、ＣＰＵ５１は、ステップ１１３で、領域内のひび点を代表する代表線分を抽出する。領域内のひび点を代表する線分は、例えば、回帰直線であってよい。ＣＰＵ５１は、ステップ１１４で、代表線分とひび点との距離の平均値が所定の閾値より大きいか否か判断する。
【００７２】
ステップ１１４の判定が否定された場合、ＣＰＵ５１は、ステップ１１５で、代表線分を記録し、ステップ１１２に戻る。ステップ１１４の判定が肯定された場合、ＣＰＵ５１は、ステップ１１６で、領域を小領域に分割して、該小領域を新たな未処理領域とし、ステップ１１２に戻る。
【００７３】
図１２に、図１０のステップ１０２の端点移動処理の流れを例示する。ＣＰＵ５１は、ステップ１５１で、未処理の代表線分が存在するか否か判定する。ステップ１５１の判定が否定された場合、ＣＰＵ５１は、端点移動処理を終了する。
【００７４】
ステップ１５１の判定が肯定された場合、ＣＰＵ５１は、ステップ１５２で、代表線分の第１端点について、移動先候補を設定する。詳細には、第１端点から最も近い領域境界上のひび点、及び、ひび点の代表線分への投影点が代表線分の第２端点から最も遠い当該ひび点を、移動先候補として設定する。領域境界上にひび点が存在しない場合、ひび点の代表線分への投影点が代表線分の第２端点から最も遠い当該ひび点を、移動先候補として設定する。
【００７５】
ＣＰＵ５１は、ステップ１５３で、代表線分の第２端点について、移動先候補を設定する。詳細には、第２端点から最も近い領域境界上のひび点、及び、ひび点の代表線分への投影点が代表線分の第１端点から最も遠い当該ひび点を、移動先候補として設定する。領域境界上にひび点が存在しない場合、ひび点の代表線分への投影点が代表線分の第１端点から最も遠い当該ひび点を、移動先候補として設定する。
【００７６】
ＣＰＵ５１は、ステップ１５４で、第１端点及び第２端点の少なくとも何れかについて移動先候補が２つ存在する場合、２つの移動先候補の何れかを移動先に決定する。２つの移動先候補のどちらを移動先に決定するかは、第１端点及び第２端点をどちらの移動先に移動した場合に、生成される端点移動線分が領域内のひび点をより適切に代表するか、に基づく。
【００７７】
例えば、第１端点及び第２端点をどちらの移動先に移動した場合に、端点移動線分の近傍にひび点がより多く存在するかによって決定してもよい。ＣＰＵ５１は、ステップ１５４で、第１端点及び第２端点の少なくとも何れかについて移動先候補が１つ存在する場合、当該移動先候補を移動先に決定する。ＣＰＵ５１は、ステップ１５１に戻る。
【００７８】
図１３に、図１０のステップ１０３の線分集合抽出処理の流れを例示する。ＣＰＵ５１は、ステップ１２１で、何れの線分集合にも含まれていない未処理線分が存在するか否か判定する。ステップ１２１の判定が否定された場合、ＣＰＵ５１は、線分集合抽出処理を終了する。
【００７９】
ＣＰＵ５１は、ステップ１２２で、任意の１つの線分Ａを線分集合に入れる。ＣＰＵ５１は、ステップ１２３で、線分Ａの何れかの端点との端点間距離が閾値より小さい端点をもつ線分Ｂが存在するか否か判定する。ステップ１２３の判定が肯定された場合、ＣＰＵ５１は、ステップ１２４で、条件に該当する全ての線分Ｂを線分集合に入れる。ＣＰＵ５１は、ステップ１２５で、全ての線分Ｂを新たな線分Ａに設定し、ステップ１２３に戻る。
【００８０】
ステップ１２３では、線分Ａが複数存在する場合、全ての線分Ａの何れかの端点との端点間距離が閾値より小さい端点をもつ線分Ｂが存在するか否か判定する。ステップ１２３の判定が肯定された場合、ＣＰＵ５１は、ステップ１２４に進む。ステップ１２３の判定が否定された場合、ＣＰＵ５１は、ステップ１２６で、線分集合を記録し、線分集合内の線分を処理済み線分に設定し、ステップ１２７で、線分集合をクリアし、ステップ１２１に戻る。
【００８１】
図１４に、図１０のステップ１０４のストローク抽出処理を例示する。ＣＰＵ５１は、ステップ１３１で、未処理の線分集合が存在するか否か判定する。ステップ１３１の判定が肯定された場合、ＣＰＵ５１は、ステップ１３２で、線分集合が複数存在する場合、何れかの線分集合を選択する。ＣＰＵ５１は、ステップ１３３で、部分集合に含まれている線分に対応する木構造を生成する。
【００８２】
ＣＰＵ５１は、ステップ１３４で、木構造に経路が存在するか否か判定する。ステップ１３４の判定が肯定された場合、ＣＰＵ５１は、ステップ１３５で、木構造に含まれる複数の経路から、木構造の最上位から最下位までの経路の上記指標値が最大となる経路を選択することでストロークを抽出する。ＣＰＵ５１は、ステップ１３６で、抽出したストロークを記録し、当該経路を木構造から削除し、ステップ１３４に戻る。
【００８３】
ステップ１３４の判定が否定された場合、即ち、木構造に経路が存在しない場合、ＣＰＵ５１は、ステップ１３１に戻る。ＣＰＵ５１は、ステップ１３１で、未処理の線分集合が存在するか否か判定し、ステップ１３１の判定が否定され、ステップ１３６で記録されたストロークが存在する場合、ステップ１３７で、ストロークを出力し、ストローク抽出処理を終了する。
【００８４】
ステップ１３７で、ストロークを出力する場合、ストロークは、例えば、図１６Ａに実線及び破線で例示するように、ディスプレイ５５Ｃに、画像として表示されてもよい。実線は、例えば、第１のストロークに対応する経路に含まれる線分を表し、破線は、例えば、第２のストロークに対応する経路に含まれる線分を表す。
【００８５】
また、ストロークは、ストロークに対応する経路に含まれる線分をつなげた折れ線に近似する曲線で表されてもよい。折れ線に近似する曲線は、既存の技術で生成される。また、ストロークは、ストロークの識別番号とストロークに対応する経路に含まれる線分の情報とを関連付けて、例えば、外部記憶装置５５Ａに記録されてもよい。
【００８６】
図１５に、図１４のステップ１３３の木構造生成処理を例示する。ＣＰＵ５１は、ステップ１４１で、線分集合の全体形状から木構造の全体的な形状を決定する。木構造の全体的な形状が横方向に延びている場合、最も左に端点を有する線分を選択し、木構造の全体的な形状が縦方向に延びている場合、最も上に端点を有する線分を選択する。
【００８７】
ＣＰＵ５１は、ステップ１４２で、木構造の全体的な形状が横方向に延びている場合、線分の左側の端点をルートに設定し、木構造の全体的な形状が縦方向に延びている場合、線分の上側の端点をルートに設定する。ＣＰＵ５１は、ステップ１４３で、ルートと端点との距離が所定値以下である端点をもつ線分が存在するか否か判定する。ルートと端点との距離が所定値以下である端点をもつ線分は複数存在してもよい。
【００８８】
ステップ１４３の判定が肯定された場合、ＣＰＵ５１は、ステップ１４４で、当該線分を木構造に追加し、ステップ１４５に進む。ステップ１４３の判定が否定された場合、ＣＰＵ５１は、ステップ１４５に進む。木構造に含まれる線分のルートと反対側の端点を成長点とし、ＣＰＵ５１は、ステップ１４５で、成長点と端点との距離が所定値以下である端点をもつ線分が存在するか否か判定する。成長点と端点との距離が所定値以下である端点をもつ線分は複数存在してもよい。
【００８９】
ステップ１４５の判定が肯定された場合、ＣＰＵ５１は、ステップ１４６で、木構造に当該線分を成長線分として追加し、ステップ１４５に戻る。木構造に含まれる成長線分の成長点と反対側の端点を新たな成長点とし、ＣＰＵ５１は、ステップ１４５で、成長点と端点との距離が所定値以下である端点をもつ線分が存在するか否か判定する。
【００９０】
ステップ１４５の判定が否定された場合、即ち、成長点と端点との距離が所定値以下である端点をもつ線分が１つも存在しない場合、ＣＰＵ５１は、ステップ１４７で、木構造を記録する。ＣＰＵ５１は、ステップ１４８で、木構造をクリアする。
【００９１】
ＣＰＵ５１は、ステップ１４９で、線分集合内に未処理の線分、即ち、木構造に含まれていない線分が存在するか否か判定する。ステップ１４９の判定が肯定された場合、ＣＰＵ５１は、ステップ１４１に戻り、未処理の線分について、ステップ１４１〜ステップ１４９の処理を繰り返す。ステップ１４９の判定が否定された場合、ＣＰＵ５１は、木構造生成処理を終了する。
【００９２】
図１６Ｂに、関連技術で抽出したストロークを例示する。第１のストロークに含まれる線分を実線で表し、第２のストロークに含まれる線分を破線で表す。関連技術では、隣接する線分どうしの関係だけで線分を接続することでストロークを抽出しているため、最長かつ連続するひび線群に対応するストロークが抽出されていない。
【００９３】
一方、図１６Ａに例示する本実施形態で抽出したストロークでは、実線で示すように、第１のストロークとして最長かつ連続するひび線群に対応するストロークを抽出することができる。本実施形態では、基本線分間で接続可能な度合いを示す値が最も高く、かつ、接続した基本線分の合計の長さが最も長い基本線分群に対応する、木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出しているためである。
【００９４】
橋などの構造物のひびの状態を点検するために、構造物の表面のひびを図面に記録する作業が目視及び手描きによって行われている。作業員は、例えば、写真などを参照しながら手描きでひび線を図面に記入する。ひび線は、ストローク、即ち、ひび線を含む最長かつ連続する線で記入される。本実施形態では、作業にかかる時間及び手間を低減しつつ、作業員によるひび線の記入と同様の成果物を取得することができる。
【００９５】
図１０〜図１５のフローチャートは一例であり、ステップの詳細及び順序は適宜変更することが可能である。
【００９６】
本実施形態では、構造物を撮影して取得された画像を複数の領域に分割し、複数の領域の内、複数のひび点を含む複数の対象領域について、複数の対象領域毎に複数の対象領域の各々に含まれる複数のひび点を代表する代表線分を基本線分として抽出する。抽出された基本線分の内、端点どうしが近接する基本線分に基づいて、特定の基本線分の端点をルートとする木構造を生成する。生成した木構造の複数の経路の内、基本線分間で接続可能な度合いを示す値が最も高く、かつ、接続した基本線分の合計の長さが最も長い基本線分群に対応する、木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する。
【００９７】
これにより、本実施形態では、ひび点を代表するひび線の候補の中から最長かつ連続するひび線群に対応するストロークを抽出することを可能とする。
【００９８】
以上の各実施形態に関し、更に以下の付記を開示する。
【００９９】
（付記１）
構造物を撮影して取得された画像を複数の領域に分割し、前記複数の領域の内、複数のひび点を含む複数の対象領域について、前記複数の対象領域毎に前記複数の対象領域の各々に含まれる複数のひび点を代表する代表線分を基本線分として抽出する線分抽出部と、
抽出された前記基本線分の内、端点どうしが近接する基本線分に基づいて、特定の基本線分の端点をルートとする木構造を生成する木構造生成部と、
生成した前記木構造の複数の経路の内、基本線分間で接続可能な度合いを示す値が最も高く、かつ、接続した基本線分の合計の長さが最も長い基本線分群に対応する、前記木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出するストローク抽出部と、
を含む、ひび線抽出装置。
（付記２）
前記ストローク抽出部は、
前記木構造から前記ストロークに対応する経路を取り除いた残りの経路の内、基本線分間で接続可能な度合いを示す値が高く、かつ、接続した基本線分の合計の長さが最も長い線分群に対応する、前記木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する、
付記１のひび線抽出装置。
（付記３）
前記接続可能な度合いは、隣接する基本線分間の距離、基本線分どうしのなす角度、及び、隣接する領域に存在する基本線分各々の共通する境界上の端点と該端点に最も近いひび点との距離、の少なくとも１つに基づいて決定される、
付記１または付記２のひび線抽出装置。
（付記４）
前記線分抽出部は、
前記対象領域内の複数のひび点と抽出された前記代表線分との間の距離の平均値が閾値より大きい対象領域をさらに複数の小領域に分割し、
前記複数の小領域の内、複数のひび点を含む小領域を新たな対象領域として前記代表線分を抽出する、
付記１〜付記３の何れかのひび線抽出装置。
（付記５）
前記代表線分の両端点を、前記ひび点を代表した状態を保持したまま、前記接続可能な度合いが高くなるように移動することで端点移動線分を生成して前記基本線分に加える端点移動部、
をさらに含む、付記１〜付記４の何れかのひび線抽出装置。
（付記６）
コンピュータが、
構造物を撮影して取得された画像を複数の領域に分割し、前記複数の領域の内、複数のひび点を含む複数の対象領域について、前記複数の対象領域毎に前記複数の対象領域の各々に含まれる複数のひび点を代表する代表線分を基本線分として抽出し、
抽出された前記基本線分の内、端点どうしが近接する基本線分に基づいて、特定の基本線分の端点をルートとする木構造を生成し、
生成した前記木構造の複数の経路の内、基本線分間で接続可能な度合いを示す値が最も高く、かつ、接続した基本線分の合計の長さが最も長い基本線分群に対応する、前記木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する、
ひび線抽出方法。
（付記７）
前記木構造から前記ストロークに対応する経路を取り除いた残りの経路の内、基本線分間で接続可能な度合いを示す値が高く、かつ、接続した基本線分の合計の長さが最も長い線分群に対応する、前記木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する、
付記６のひび線抽出方法。
（付記８）
前記接続可能な度合いは、隣接する基本線分間の距離、基本線分どうしのなす角度、及び、隣接する領域に存在する基本線分各々の共通する境界上の端点と該端点に最も近いひび点との距離、の少なくとも１つに基づいて決定される、
付記６または付記７のひび線抽出方法。
（付記９）
前記対象領域内の複数のひび点と抽出された前記代表線分との間の距離の平均値が閾値より大きい対象領域をさらに複数の小領域に分割し、
前記複数の小領域の内、複数のひび点を含む小領域を新たな対象領域として前記代表線分を抽出する、
付記６〜付記８の何れかのひび線抽出方法。
（付記１０）
前記代表線分の両端点を、前記ひび点を代表した状態を保持したまま、前記接続可能な度合いが高くなるように移動することで端点移動線分を生成して前記基本線分に加える、
付記６〜付記９の何れかのひび線抽出方法。
（付記１１）
構造物を撮影して取得された画像を複数の領域に分割し、前記複数の領域の内、複数のひび点を含む複数の対象領域について、前記複数の対象領域毎に前記複数の対象領域の各々に含まれる複数のひび点を代表する代表線分を基本線分として抽出し、
抽出された前記基本線分の内、端点どうしが近接する基本線分に基づいて、特定の基本線分の端点をルートとする木構造を生成し、
生成した前記木構造の複数の経路の内、基本線分間で接続可能な度合いを示す値が最も高く、かつ、接続した基本線分の合計の長さが最も長い基本線分群に対応する、前記木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する、
ひび線抽出処理をコンピュータに実行させるためのプログラム。
（付記１２）
前記木構造から前記ストロークに対応する経路を取り除いた残りの経路の内、基本線分間で接続可能な度合いを示す値が高く、かつ、接続した基本線分の合計の長さが最も長い線分群に対応する、前記木構造の最上位から最下位までの経路をひび線に対応するストロークとして抽出する、
付記１１のプログラム。
（付記１３）
前記接続可能な度合いは、隣接する基本線分間の距離、基本線分どうしのなす角度、及び、隣接する領域に存在する基本線分各々の共通する境界上の端点と該端点に最も近いひび点との距離、の少なくとも１つに基づいて決定される、
付記１１または付記１２のプログラム。
（付記１４）
前記対象領域内の複数のひび点と抽出された前記代表線分との間の距離の平均値が閾値より大きい対象領域をさらに複数の小領域に分割し、
前記複数の小領域の内、複数のひび点を含む小領域を新たな対象領域として前記代表線分を抽出する、
付記１１〜付記１３の何れかのプログラム。
（付記１５）
前記代表線分の両端点を、前記ひび点を代表した状態を保持したまま、前記接続可能な度合いが高くなるように移動することで端点移動線分を生成して前記基本線分に加える、
付記１１〜付記１４の何れかのプログラム。
【符号の説明】
【０１００】
１０  ひび線抽出装置
１３  線分抽出部
１４  端点移動部
１６  木構造生成部
１７  ストローク抽出部
５１  ＣＰＵ
５２  一次記憶部
５３  二次記憶部
【図１】
2020113052.tif 000007
【図２Ａ】
2020113052.tif 000008
【図２Ｂ】
2020113052.tif 000009
【図２Ｃ】
2020113052.tif 000010
【図２Ｄ】
2020113052.tif 000011
【図２Ｅ】
2020113052.tif 000012
【図３】
2020113052.tif 000013
【図４Ａ】
2020113052.tif 000014
【図４Ｂ】
2020113052.tif 000015
【図５Ａ】
2020113052.tif 000016
【図５Ｂ】
2020113052.tif 000017
【図６Ａ】
2020113052.tif 000018
【図６Ｂ】
2020113052.tif 000019
【図７】
2020113052.tif 000020
【図８】
2020113052.tif 000021
【図９】
2020113052.tif 000022
【図１０】
2020113052.tif 000023
【図１１】
2020113052.tif 000024
【図１２】
2020113052.tif 000025
【図１３】
2020113052.tif 000026
【図１４】
2020113052.tif 000027
【図１５】
2020113052.tif 000028
【図１６Ａ】
2020113052.tif 000029
【図１６Ｂ】
2020113052.tif 000030