(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024178654
(43)【公開日】2024-12-25
(54)【発明の名称】細線化方法、細線化装置およびコンピュータ読み取り可能なプログラム
(51)【国際特許分類】
G06T 5/30 20060101AFI20241218BHJP
【FI】
G06T5/30
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023096957
(22)【出願日】2023-06-13
(71)【出願人】
【識別番号】000207551
【氏名又は名称】株式会社SCREENホールディングス
(74)【代理人】
【識別番号】100110847
【弁理士】
【氏名又は名称】松阪 正弘
(74)【代理人】
【識別番号】100136526
【弁理士】
【氏名又は名称】田中 勉
(74)【代理人】
【識別番号】100136755
【弁理士】
【氏名又は名称】井田 正道
(72)【発明者】
【氏名】安田 拓矢
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CA06
5B057CA18
5B057CB02
5B057CB06
5B057CB12
5B057CB16
(57)【要約】
【課題】二値画像の細線化処理を高速化するとともに、ヒゲ等の異常の発生が低減された美しい細線化画像を取得する。
【解決手段】細線化方法は、ランレングス符号化された二値画像において、細線化の対象となるパターンを示すランを対象ランとして、ラン長に対応する左右方向に対して交差する線状領域を示し、かつ、上下方向に順に接続する対象ラン群を特定ラン群43として検出する工程と、特定ラン群43のラン長を短縮することにより、ランレングス符号化された部分細線化画像を取得する工程と、部分細線化画像に対して所定の細線化処理を施すことにより細線化画像を取得する工程とを備える。特定ラン群43のラン長の短縮では、特定ラン群43において、上下方向の両端部431,432に含まれる対象ラン41のラン長が中央側に位置するほど短くなり、かつ、両端部431,432間に位置する対象ラン41のラン長が設定幅となる。
【選択図】
図9
【特許請求の範囲】
【請求項1】
ランレングス符号化された二値画像を細線化する細線化方法であって、
a)前記二値画像において、細線化の対象となるパターンを示すランを対象ランとして、ラン長に対応する左右方向に対して交差する線状領域を示し、かつ、前記左右方向に垂直な上下方向に順に接続する対象ラン群を特定ラン群として検出する工程と、
b)前記特定ラン群において、前記上下方向の両端部に含まれる対象ランのラン長が中央側に位置するほど短くなり、かつ、前記両端部間に位置する対象ランのラン長が設定幅となるように、前記特定ラン群のラン長を短縮することにより、ランレングス符号化された部分細線化画像を取得する工程と、
c)前記部分細線化画像に対して所定の細線化処理を施すことにより細線化画像を取得する工程と、
を備える細線化方法。
【請求項2】
請求項1に記載の細線化方法であって、
前記a)工程において、各対象ランが上下それぞれに1個以下の対象ランのみと接続する前記対象ラン群が、前記特定ラン群として検出される細線化方法。
【請求項3】
請求項1に記載の細線化方法であって、
前記a)工程において、前記上下方向に互いに接続する2個の対象ランの各組合せにおける、左端同士の前記左右方向の距離、および、右端同士の前記左右方向の距離が、所定画素数以下である前記対象ラン群が、前記特定ラン群として検出される細線化方法。
【請求項4】
請求項1に記載の細線化方法であって、
前記a)工程において、上端から下端に向かって対象ランの重心の移動方向が一定である前記対象ラン群が、前記特定ラン群として検出される細線化方法。
【請求項5】
請求項1ないし4のいずれか1つに記載の細線化方法であって、
前記a)工程が、
a1)前記二値画像において、所定の条件を満たしつつ前記上下方向に順に接続する対象ラン群を特定ラン群候補として検出する工程と、
a2)前記特定ラン群候補が示す領域において、前記上下方向に沿う長さと、前記左右方向に沿う太さとを比較することにより、前記特定ラン群候補が前記特定ラン群であるか否かを判定する工程と、
を備える細線化方法。
【請求項6】
請求項1ないし4のいずれか1つに記載の細線化方法であって、
前記b)工程における前記特定ラン群のラン長の短縮により、前記上下方向に関して隣接する2個の対象ランが前記左右方向に離れる場合に、前記2個の対象ランの少なくとも一方のラン長が延長される細線化方法。
【請求項7】
ランレングス符号化された二値画像を細線化する細線化装置であって、
前記二値画像において、細線化の対象となるパターンを示すランを対象ランとして、ラン長に対応する左右方向に対して交差する線状領域を示し、かつ、前記左右方向に垂直な上下方向に順に接続する対象ラン群を特定ラン群として検出する特定ラン群検出部と、
前記特定ラン群において、前記上下方向の両端部に含まれる対象ランのラン長が中央側に位置するほど短くなり、かつ、前記両端部間に位置する対象ランのラン長が設定幅となるように、前記特定ラン群のラン長を短縮することにより、ランレングス符号化された部分細線化画像を取得する第1細線化部と、
前記部分細線化画像に対して所定の細線化処理を施すことにより細線化画像を取得する第2細線化部と、
を備える細線化装置。
【請求項8】
ランレングス符号化された二値画像の細線化をコンピュータに実行させる、コンピュータ読み取り可能なプログラムであって、前記プログラムのコンピュータによる実行は、前記コンピュータに、
a)前記二値画像において、細線化の対象となるパターンを示すランを対象ランとして、ラン長に対応する左右方向に対して交差する線状領域を示し、かつ、前記左右方向に垂直な上下方向に順に接続する対象ラン群を特定ラン群として検出する工程と、
b)前記特定ラン群において、前記上下方向の両端部に含まれる対象ランのラン長が中央側に位置するほど短くなり、かつ、前記両端部間に位置する対象ランのラン長が設定幅となるように、前記特定ラン群のラン長を短縮することにより、ランレングス符号化された部分細線化画像を取得する工程と、
c)前記部分細線化画像に対して所定の細線化処理を施すことにより細線化画像を取得する工程と、
を実行させるコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ランレングス符号化された二値画像を細線化する技術に関する。
【背景技術】
【0002】
従来、二値画像をランレングス符号化してランレングスデータに変換し、処理を高速化することが行われている。また、特許文献1では、画像データの送信で、横方向細線化処理および縦方向細線化処理のうちの一方の処理を行い、その受信において他方の処理を行う手法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、ランレングス符号化された二値画像を細線化する際に、ラン長に対応する左右方向の細線化を先に行い、その後、全体の細線化を行って細線化画像を取得することが考えられる。ランレングスデータでは、左右方向の細線化を高速に行うことが可能であるため、上記手法により、二値画像の細線化処理を高速化することが可能となる。しかしながら、上記手法では、例えば、線と線との接続部において、枝状の不要な線(いわゆる、ヒゲ)等の異常が発生しやすくなる。
【0005】
本発明は上記課題に鑑みなされたものであり、二値画像の細線化処理を高速化するとともに、ヒゲ等の異常の発生が低減された美しい細線化画像を取得することを目的としている。
【課題を解決するための手段】
【0006】
本発明の態様1は、ランレングス符号化された二値画像を細線化する細線化方法であって、a)前記二値画像において、細線化の対象となるパターンを示すランを対象ランとして、ラン長に対応する左右方向に対して交差する線状領域を示し、かつ、前記左右方向に垂直な上下方向に順に接続する対象ラン群を特定ラン群として検出する工程と、b)前記特定ラン群において、前記上下方向の両端部に含まれる対象ランのラン長が中央側に位置するほど短くなり、かつ、前記両端部間に位置する対象ランのラン長が設定幅となるように、前記特定ラン群のラン長を短縮することにより、ランレングス符号化された部分細線化画像を取得する工程と、c)前記部分細線化画像に対して所定の細線化処理を施すことにより細線化画像を取得する工程とを備える。
【0007】
本発明の態様2は、態様1の細線化方法であって、前記a)工程において、各対象ランが上下それぞれに1個以下の対象ランのみと接続する前記対象ラン群が、前記特定ラン群として検出される。
【0008】
本発明の態様3は、態様1(態様1または2であってもよい。)の細線化方法であって、前記a)工程において、前記上下方向に互いに接続する2個の対象ランの各組合せにおける、左端同士の前記左右方向の距離、および、右端同士の前記左右方向の距離が、所定画素数以下である前記対象ラン群が、前記特定ラン群として検出される。
【0009】
本発明の態様4は、態様1(態様1ないし3のいずれか1つであってもよい。)の細線化方法であって、前記a)工程において、上端から下端に向かって対象ランの重心の移動方向が一定である前記対象ラン群が、前記特定ラン群として検出される。
【0010】
本発明の態様5は、態様1ないし4のいずれか1つの細線化方法であって、前記a)工程が、a1)前記二値画像において、所定の条件を満たしつつ前記上下方向に順に接続する対象ラン群を特定ラン群候補として検出する工程と、a2)前記特定ラン群候補が示す領域において、前記上下方向に沿う長さと、前記左右方向に沿う太さとを比較することにより、前記特定ラン群候補が前記特定ラン群であるか否かを判定する工程とを備える。
【0011】
本発明の態様6は、態様1ないし4のいずれか1つ(態様1ないし5のいずれか1つであってもよい。)の細線化方法であって、前記b)工程における前記特定ラン群のラン長の短縮により、前記上下方向に関して隣接する2個の対象ランが前記左右方向に離れる場合に、前記2個の対象ランの少なくとも一方のラン長が延長される。
【0012】
本発明の態様7は、ランレングス符号化された二値画像を細線化する細線化装置であって、前記二値画像において、細線化の対象となるパターンを示すランを対象ランとして、ラン長に対応する左右方向に対して交差する線状領域を示し、かつ、前記左右方向に垂直な上下方向に順に接続する対象ラン群を特定ラン群として検出する特定ラン群検出部と、前記特定ラン群において、前記上下方向の両端部に含まれる対象ランのラン長が中央側に位置するほど短くなり、かつ、前記両端部間に位置する対象ランのラン長が設定幅となるように、前記特定ラン群のラン長を短縮することにより、ランレングス符号化された部分細線化画像を取得する第1細線化部と、前記部分細線化画像に対して所定の細線化処理を施すことにより細線化画像を取得する第2細線化部とを備える。
【0013】
本発明の態様8は、ランレングス符号化された二値画像の細線化をコンピュータに実行させる、コンピュータ読み取り可能なプログラムであって、前記プログラムのコンピュータによる実行は、前記コンピュータに、a)前記二値画像において、細線化の対象となるパターンを示すランを対象ランとして、ラン長に対応する左右方向に対して交差する線状領域を示し、かつ、前記左右方向に垂直な上下方向に順に接続する対象ラン群を特定ラン群として検出する工程と、b)前記特定ラン群において、前記上下方向の両端部に含まれる対象ランのラン長が中央側に位置するほど短くなり、かつ、前記両端部間に位置する対象ランのラン長が設定幅となるように、前記特定ラン群のラン長を短縮することにより、ランレングス符号化された部分細線化画像を取得する工程と、c)前記部分細線化画像に対して所定の細線化処理を施すことにより細線化画像を取得する工程とを実行させる。
【発明の効果】
【0014】
本発明によれば、二値画像の細線化処理を高速化するとともに、ヒゲ等の異常の発生が低減された美しい細線化画像を取得することができる。
【図面の簡単な説明】
【0015】
【
図3】二値画像のランレングス符号化を説明するための図である。
【
図4】二値画像を細線化する処理の流れを示す図である。
【
図6】特定ラン群候補の検出を説明するための図である。
【
図9】特定ラン群のラン長の短縮を説明するための図である。
【
図10】特定ラン群のラン長の延長を説明するための図である。
【
図13】二値画像を細線化する比較例の処理を説明するための図である。
【
図15】比較例の処理による部分細線化画像を示す図である。
【発明を実施するための形態】
【0016】
図1は、本発明の一の実施の形態に係る細線化装置1の機能構成を示す図である。細線化装置1は、ランレングス符号化(ランレングス圧縮)された二値画像を細線化する装置である。細線化装置1における細線化の対象となる二値画像は、線の接続関係や角度、太さ等が多種多様な条件になる画像である。例えば、当該二値画像は、プリント基板の回路パターン等の基板上のパターンを示す画像や、神経突起細胞等の細胞を示す細胞画像であり、細線化した二値画像(すなわち、細線化画像)は、基板上のパターンの検査や細胞の検査等に用いられる。
【0017】
図2は、細線化装置1を実現するコンピュータ3の構成を示す図である。コンピュータ3は、CPU31と、ROM32と、RAM33と、記憶装置34と、ディスプレイ35と、入力部36と、読取装置37と、通信部38と、GPU39と、バス30とを含む一般的なコンピュータシステムの構成を有する。CPU31は、各種演算処理を行う。GPU39は、画像処理等に関する各種演算処理を行う。ROM32は、基本プログラムを記憶する。RAM33は、各種情報を記憶する。記憶装置34は、情報記憶を行う。ディスプレイ35は、画像等の各種情報の表示を行う。入力部36は、作業者からの入力を受け付けるキーボード36aおよびマウス36bを備える。読取装置37は、光ディスク、磁気ディスク、光磁気ディスク、メモリカード等のコンピュータ読み取り可能な記録媒体81から情報の読み取りを行う。通信部38は、外部の装置との間で信号を送受信する。バス30は、CPU31、GPU39、ROM32、RAM33、記憶装置34、ディスプレイ35、入力部36、読取装置37および通信部38を接続する信号回路である。
【0018】
コンピュータ3では、事前に読取装置37を介して記録媒体81からプログラム811が読み出されて記憶装置34に記憶されている。プログラム811は、コンピュータ読み取り可能であればよく、ネットワークを介して記憶装置34に記憶されてもよい。CPU31およびGPU39は、プログラム811に従ってRAM33や記憶装置34を利用しつつ演算処理を実行する。CPU31およびGPU39は、コンピュータ3において演算部として機能する。CPU31およびGPU39以外に演算部として機能する他の構成が採用されてもよい。
【0019】
細線化装置1では、コンピュータ3がプログラム811に従って演算処理等を実行することにより、
図1に示す機能構成が実現される。すなわち、コンピュータ3のCPU31、GPU39、ROM32、RAM33、記憶装置34およびこれらの周辺構成は、特定ラン群検出部20と、第1細線化部21と、第2細線化部22とを実現する。特定ラン群検出部20、第1細線化部21および第2細線化部22の機能の詳細については後述する。これらの機能の全部または一部は専用の電気回路により実現されてもよい。また、複数のコンピュータによりこれらの機能が実現されてもよい。
【0020】
図3は、二値画像4のランレングス符号化を説明するための図である。
図3の左側は、二値画像4の一部を示し、右側は、当該二値画像4がランレングス符号化されたデータ(以下、「ランレングスデータ」という。)を示す。二値画像4では、互いに直交する2つの方向に、複数の画素が配列されており、本明細書では、当該2つの方向を「左右方向」および「上下方向」という。左右方向および上下方向は、
図3の左側の二値画像4における左右方向および上下方向である。
図3の左側では、二値画像4の上側および左側に、左右方向および上下方向の座標を記している。
【0021】
二値画像4において、左右方向に連続する、同じ値の画素の集合は「ラン」と呼ばれ、当該画素の集合に含まれる画素の個数は「ラン長(ランレングス)」と呼ばれる。ラン長は、左右方向におけるランの長さである。本実施の形態における二値画像4では、白い画素がパターンを示し、当該パターンが細線化の対象となるため、以下の説明では、当該パターンを示すラン41を「対象ラン41」という。対象ラン41は、左右方向に連続する白い画素の集合である。
図3の左側では、対象ラン41を太線の矩形にて囲んでいる。実際の二値画像4は、
図3の左側よりも多数の画素が左右方向および上下方向に配列されており、上下方向の各位置では、複数の対象ラン41が存在し得る。二値画像4のランレングス符号化では、概念的には、当該二値画像4において、上下方向の各位置にて左右方向に並ぶ画素の値の配列が、当該値の配列に含まれる各対象ラン41の始点および終点の位置で表される(
図3の右側参照)。
【0022】
図4は、ランレングス符号化された二値画像4を細線化する処理の流れを示す図である。二値画像4の細線化処理では、まず、ランレングス符号化された二値画像4が準備され、
図1の特定ラン群検出部20に入力される(ステップS11)。
図5は、細線化処理が行われる二値画像4の一部を示す図である。実際には、
図5の二値画像4は、ランレングスデータとして表されている。本実施の形態では、外部の装置においてランレングス符号化された二値画像がランレングスデータとして細線化装置1に入力されるが、当該ランレングスデータは、細線化装置1において二値画像4をランレングス符号化することに準備されてもよい。
【0023】
特定ラン群検出部20では、二値画像4において、所定の条件を満たしつつ上下方向に順に接続する対象ラン群が特定ラン群候補として検出される(ステップS12)。
図6は、特定ラン群候補42の検出を説明するための図であり、二値画像4に含まれる複数の対象ラン41(一部の対象ランに符号41a~41lを付す。)を示す。特定ラン群検出部20における処理は、実際には、二値画像4のランレングスデータに対して行われるが、説明の便宜上、復号化(展開)した二値画像4を参照して処理の内容を説明する。特定ラン群候補の検出では、まず、二値画像4の上側から下側に向かって順に、各対象ラン41に対して下側に接続(接触)する他の対象ラン41が存在するか否かが確認される。ここで、2個の対象ラン41が「接続する」には、当該2個の対象ラン41が、左右方向の位置が同じである画素を含む場合のみならず、当該2個の対象ラン41の一方の左端と他方の右端とが、左右方向に1画素以内の位置に存在する場合が含まれる。
【0024】
一の対象ラン41に対して下側に接続する対象ラン41が存在する場合、これらの2個の対象ラン41の組合せ(以下、「接続ランペア」という。)において、後述の条件1~3を満たすか否かが確認される。条件1~3を満たす接続ランペアでは、その接続関係が特定ラン群検出部20において記録される。これにより、上下方向に順に接続する所定数以上(例えば、後述の数2中のYt以上)の対象ラン41であり、かつ、それぞれが条件1~3の全てを満たす接続ランペアに含まれる対象ラン群が、特定ラン群候補42として検出される。
図6では、1個の特定ラン群候補42に含まれる複数の対象ラン41に対して、符号42を付す1本の矢印を重ねている。
【0025】
条件1は、接続ランペアに含まれる各対象ラン41が、上下それぞれに1個以下の対象ラン41のみと接続する(すなわち、1個の対象ラン41のみと接続する、または、いずれの対象ラン41とも接続しない)ことである。例えば、
図6中に符号41a,41bを付す2個の対象ランの接続ランペアでは、各対象ラン41a,41bが上下それぞれに1個以下の対象ラン41のみと接続するため、対象ラン41a,41bの接続ランペアは条件1を満たす。
【0026】
一方、
図6中の2個の対象ラン41d,41eの接続ランペアでは、対象ラン41eが下側にて2個の対象ラン41,41fと接続するため、対象ラン41d,41eの接続ランペアは条件1を満たさない。換言すると、対象ラン41eが下側にて2個の対象ラン41,41fに分岐するため、対象ラン41d,41eの接続ランペアは条件1を満たさない。なお、対象ラン41dと、その上側の対象ラン41cとの接続ランペアでは、各対象ラン41c,41dが上下それぞれに1個以下の対象ラン41のみと接続するため、対象ラン41c,41dの接続ランペアは条件1を満たす。以上のように、条件1は、分岐している対象ラン41を特定ラン群候補42から除外し、分岐していない対象ラン41を特定ラン群候補42に含めるものである。
【0027】
条件2は、接続ランペアに含まれる2個の対象ラン41において、左端の画素同士の左右方向の距離(ランの開始座標の差)、および、右端の画素同士の左右方向の距離(ランの終了座標の差)が、所定の判定画素数以下であることである。例えば、
図6中の対象ラン41f,41gの接続ランペアでは、対象ラン41f,41gの左端の画素同士の左右方向の距離、および、右端の画素同士の左右方向の距離が、共に判定画素数以下であるため、対象ラン41f,41gの接続ランペアは条件2を満たす。一方、対象ラン41h,41iの接続ランペアでは、対象ラン41h,41iの左端の画素同士の左右方向の距離D1が、判定画素数を超えるため、対象ラン41h,41iの接続ランペアは条件2を満たさない。以上のように、条件2は、上側の対象ラン41からのズレが大きい対象ラン41を特定ラン群候補42から除外し、上側の対象ラン41からのズレが小さい対象ラン41を特定ラン群候補42に含めるものである。
【0028】
条件3は、接続ランペアに含まれる2個の対象ラン41が特定ラン群候補42に含まれると仮定し、当該特定ラン群候補42の上端から下側に向かって対象ラン41の重心の移動方向を順に特定した場合に、当該重心の移動方向が一定であることである。例えば、
図6中の対象ラン41j,41kの接続ランペアが、対象ラン41f,41gと共に特定ラン群候補42に含まれると仮定する。この場合に、対象ラン41j,41kにおける重心の移動方向が、それまでの重心の移動方向(すなわち、対象ラン41f,41gの移動方向、および、対象ラン41g,41jの移動方向)と同じ(右側)であるため、対象ラン41j,41kの接続ランペアは条件3を満たす。
【0029】
一方、
図6中の対象ラン41k,41lの接続ランペアが、対象ラン41f,41g,41jと共に特定ラン群候補42に含まれると仮定すると、対象ラン41k,41lにおける重心の移動方向が、それまでの重心の移動方向とは逆方向となる、すなわち、特定ラン群候補42が折れ曲がる。この場合、対象ラン41k,41lの接続ランペアは条件3を満たさない。以上のように、条件3は、折れ曲がり部を形成することになる対象ラン41を特定ラン群候補42から除外するものである。
【0030】
図7は、1個の特定ラン群候補42を示す図である。特定ラン群検出部20では、少なくとも1個の特定ラン群候補42が検出されると、各特定ラン群候補42が示す領域において、上下方向に沿う長さと、左右方向に沿う太さとが比較される。
図7の例では、まず、特定ラン群候補42に含まれる複数の対象ラン41の個数が長さLとして求められ、当該複数の対象ラン41のラン長の平均が太さTとして求められる。さらに、特定ラン群候補42に含まれる上端の対象ラン41と下端の対象ラン41との間の重心の移動量R(傾きと捉えることも可能である。)が求められる。そして、長さL、太さTおよび移動量Rが、数1の関係を満たす場合、特定ラン群候補42が特定ラン群であると判定され、数1の関係を満たさない場合、特定ラン群候補42が特定ラン群ではないと判定される(ステップS13)。
【0031】
【0032】
数1の左辺は、上端の対象ラン41の重心と下端の対象ラン41の重心とを結ぶ線L1(
図7中に破線にて示す。)に垂直な方向における特定ラン群候補42の太さを示す。換言すると、数1の左辺は、特定ラン群候補42の傾きを補正した太さを示す。
図7では、当該太さを符号T0を付す矢印にて示す。数1中のαは調整用の係数であり、数1では、特定ラン群候補42における補正後の太さT0が、長さLに係数αを掛けた値よりも小さい場合に、特定ラン群候補42が特定ラン群であると判定される。
【0033】
係数αは大きいほど、特定ラン群候補42が特定ラン群として採用されやすくなる。特定ラン群候補42が特定ラン群であるか否かを判定する数1は好ましい一例に過ぎず、例えば、数1中の長さLに代えて、特定ラン群候補42の傾きを補正した長さ(例えば、(L2+R2)の平方根により求められる。)が用いられてもよい。また、数1の左辺として、簡易的に太さTが用いられてもよい。以上のように、ステップS13では、特定ラン群候補42が示す領域において、上下方向に沿う長さと、左右方向に沿う太さとを比較することにより、特定ラン群候補42が特定ラン群であるか否かが判定される。
【0034】
図8は、
図5と同じ二値画像4を示す図であり、特定ラン群検出部20により検出された特定ラン群を符号43を付す矩形にて囲む。以下の説明では、特定ラン群に符号43を付す。特定ラン群43は、左右方向に対して交差する線状領域、すなわち、縦線・斜線領域を示す。
【0035】
特定ラン群43が検出されると、第1細線化部21では、特定ラン群43のラン長が短縮される(ステップS14)。特定ラン群43のラン長の短縮とは、特定ラン群43に含まれる対象ラン41の画素数を減らすことであり、細線化処理と捉えることが可能である。第1細線化部21における処理は、特定ラン群検出部20と同様に、実際には、二値画像4のランレングスデータに対して行われるが、説明の便宜上、復号化した二値画像4を参照して処理の内容を説明する。
【0036】
図9は、特定ラン群43のラン長の短縮を説明するための図である。
図9の左側は、ラン長短縮前の一の特定ラン群43を示し、右側は、ラン長短縮後の特定ラン群43を示す。ここで、本実施の形態における二値画像4では、上下方向における位置が、上端から下端に向かって値が大きくなるY座標で表される。特定ラン群43に含まれる一の対象ラン41を「注目ラン41」と呼ぶと、特定ラン群43の上端の対象ラン41のY座標をY0、下端の対象ラン41のY座標をY1、注目ラン41のY座標をYr、注目ラン41のラン長をLrとして、注目ラン41の短縮後のラン長Lnは、数2により求められる。後述するように、数2中のYtは、特定ラン群43において特別な細線化処理を施す範囲を規定する値であり、予め設定される。
【0037】
【0038】
数2の右辺の式は、「Yr<Y0+Yt」の場合、「Y1-Yt<Yr」の場合、および、「その他」の場合に分けられている。「Yr<Y0+Yt」の場合の式は、特定ラン群43において、上端の対象ラン41から下側に向かってYtの範囲である部位431(以下、「上側端部431」という。)に、注目ラン41が含まれる際に用いられる。
図9の右側に示すように、当該式では、上側端部431に含まれる注目ラン41が上端の対象ラン41から離れるほど、すなわち、注目ラン41が中央側に位置するほど、注目ラン41の短縮後のラン長Lnが短くなる。このように、上側端部431では、左右方向の幅が下側に向かって漸次小さくなる。本実施の形態では、短縮後のラン長Lnの最小値である設定幅が1として設定されており、当該式の計算結果が1未満となる場合には、注目ラン41の短縮後のラン長Lnは1とされる。後述の「Y1-Yt<Yr」の場合の式において同様である。典型的には、ラン長短縮後の注目ラン41は、ラン長短縮前の注目ラン41(
図9の右側にて二点鎖線にて示す。)の略中央に配置される。
【0039】
「Y1-Yt<Yr」の場合の式は、特定ラン群43において、下端の対象ラン41から上側に向かってYtの範囲である部位432(以下、「下側端部432」という。)に、注目ラン41が含まれる際に用いられる。当該式では、下側端部432に含まれる注目ラン41が下端の対象ラン41から離れるほど、すなわち、注目ラン41が中央側に位置するほど、注目ラン41の短縮後のラン長Lnが短くなる。このように、下側端部432では、左右方向の幅が上側に向かって漸次小さくなる。
【0040】
注目ラン41が上側端部431と下側端部432との間に位置する際は、「その他」の場合に該当し、短縮後のラン長Lnが設定幅である1となる。以上のように、第1細線化部21では、特定ラン群43の上側端部431および下側端部432に対して、左右方向の幅が漸次変化する特別な細線化処理が行われる。なお、二値画像4が示すパターンの種類等によっては、設定幅が1より大きくてもよい。また、上側端部431および下側端部432における左右方向の幅は、必ずしも線形に変化する必要はなく、非線形に変化してもよい。
【0041】
図10は、特定ラン群43の一部を示す図である。
図10の上段は、ラン長短縮前の特定ラン群43を示し、中段は、ラン長短縮後の特定ラン群43を示し、下段は、後述するラン長の延長後の特定ラン群43を示す。
図10の上段および中段に示すように、上下方向に対する特定ラン群43の傾き等によっては、ラン長短縮後の特定ラン群43において、上下方向に関して隣接する2個の対象ラン41が左右方向に1画素以上離れる(すなわち、ラン間が途切れる)場合がある。このように、左右方向のみに注目した場合に、当該2個の対象ラン41の間に1画素以上の隙間49が生じるときには、第1細線化部21では、
図10の下段に示すように、当該2個の対象ラン41の少なくとも一方のラン長が延長され、当該隙間49が埋められる(解消される)。換言すると、当該2個の対象ラン41が斜め方向に繋げられる。
【0042】
対象ラン41のラン長の延長とは、当該対象ラン41の画素数を増やすことである。
図10の下段では、各対象ラン41において延長した部位(画素)を破線の矩形にて囲む。当該2個の対象ラン41では、上側の対象ラン41および下側の対象ラン41のいずれのラン長を延長してもよく、双方のラン長を延長してもよい。
図10の下段の例では、ラン長の延長後における当該2個の対象ラン41が、左右方向の位置が同じである画素(すなわち、上下方向に接続する画素)を含まない。ラン長の延長後における当該2個の対象ラン41が、左右方向の位置が同じである画素を含んでもよい。
【0043】
図11は、第1細線化部21による処理後の二値画像4aを示す図であり、
図8に対応する。
図11では、特定ラン群43に含まれる対象ラン41のみラン長の短縮、すなわち、細線化処理が行われており、特定ラン群43に含まれない対象ラン41については、細線化処理は行われない。以下、第1細線化部21による処理後の二値画像4aを、「部分細線化画像4a」と呼ぶ。第1細線化部21における上記処理は、実際には、二値画像4のランレングスデータにおいて、特定ラン群43に含まれる各対象ラン41の始点および終点の位置(値)を変更することにより、高速に実行される。以上のように、第1細線化部21では、特定ラン群43のラン長を短縮することにより、ランレングス符号化された部分細線化画像4aが取得される。
【0044】
部分細線化画像4aのランレングスデータが取得されると、第2細線化部22では、部分細線化画像4aに対して所定の細線化処理が施され、細線化画像が取得される(ステップS15)。第2細線化部22では、Zhang Suen、Hilditch、NWG(Nagendraprasad-Wang-Gupta)または田村の方法等の一般的な細線化アルゴリズムが利用される。これらの細線化アルゴリズムは周知であるため、詳細な説明を省略する。
【0045】
図12は、第2細線化部22により取得される細線化画像4bを示す図であり、
図11に対応する。第2細線化部22では、例えば、部分細線化画像4aのランレングスデータを復号化した二値画像の全体に対して細線化処理が行われる。一例では、当該二値画像において、各画素を中心とする3×3画素の配列が所定の条件に該当するか否かの確認や、3×3画素の配列が所定のパターンに該当するか否かの確認等が行われ、当該画素の値の変更の要否が決定される。これらの処理は、細線化が完了するまで繰り返される。このとき、部分細線化画像4aでは、特定ラン群43に対する部分的な細線化処理が完了しているため、第2細線化部22における細線化処理に要する時間を短縮することが可能となる。実際には、第1細線化部21を省略し、第2細線化部22のみにより二値画像4の全体を細線化処理する場合に比べて、第1細線化部21および第2細線化部22を用いる細線化装置1では、細線化画像4bを短時間で取得することが可能である。以上により、ランレングス符号化された二値画像4を細線化する処理が完了する。
【0046】
図13は、ランレングス符号化された二値画像を細線化する比較例の処理を説明するための図である。比較例の処理では、まず、
図13の左側に示す二値画像9において、左右方向の細線化が行われる。左右方向の細線化では、例えば、
図4のステップS12,S13の処理と同様にして、上下方向に延びる線状領域(特定ラン群43に相当)が検出され、続いて、当該線状領域に含まれる全ての対象ランのラン長が設定幅である1とされる。これにより、
図13の中央に示す部分細線化画像9aが取得される。その後、ステップS15と同様に、部分細線化画像9aの全体に対して細線化処理が行われ、細線化画像9bが取得される。比較例の処理では、細線化画像9bにおいて、符号A1を付す円にて囲むように、線の途切れが発生する。実際には、当該線の途切れは、左右方向の細線化時(部分細線化画像9aの取得時)に発生する。また、符号A2を付す円にて囲むように、枝状の不要な線であるヒゲが発生する。ファクシミリの文字画像等では、これらの異常を無視することが可能な場合もあるが、細線化画像9bを用いて検査等を行う場合には、これらの異常を無視することはできない。
【0047】
次に、比較例の処理においてヒゲが発生する理由について説明する。例えば、
図14に示す二値画像9に対して、比較例の処理により左右方向の細線化を行った場合、
図15に示す部分細線化画像9aが取得される。左右方向の細線化では、上下方向に延びる線状領域91の全体の幅が設定幅とされるため、部分細線化画像9aでは、細線化後の線状領域91の上端から
図15中の左側に突出する突起部92が発生する。その結果、部分細線化画像9aの全体に対して細線化処理を施すことにより得られる細線化画像では、
図15中に破線にて示す細線化パターン93において、突起部92に対応するヒゲ931が発生する。
【0048】
一方、
図4の細線化処理では、
図16に示すように、特定ラン群43の上側端部431において左右方向の幅が下側に向かって漸次小さくなるように、第1細線化部21により特定ラン群43のラン長が短縮され、部分細線化画像4aが取得される。これにより、部分細線化画像4aにおいて、上記突起部92の発生が抑制される。また、第2細線化部22により部分細線化画像4aから取得される細線化画像では、
図16中に破線にて示す細線化パターン44のように、ヒゲ931の発生が抑制される。このように、第1細線化部21では、第2細線化部22による細線化処理への影響、すなわち、最終的な細線化画像への影響を抑制しつつ、特定ラン群43のラン長が短縮される。
【0049】
以上に説明したように、
図4に示す細線化方法は、ランレングス符号化された二値画像4において、ラン長に対応する左右方向に対して交差する線状領域を示し、かつ、上下方向に順に接続する対象ラン群を特定ラン群43として検出する工程(ステップS12,S13)と、特定ラン群43のラン長を短縮することにより、ランレングス符号化された部分細線化画像4aを取得する工程(ステップS14)と、部分細線化画像4aに対して所定の細線化処理を施すことにより細線化画像4bを取得する工程(ステップS15)とを備える。ステップS14における特定ラン群43のラン長の短縮では、特定ラン群43において、上下方向の両端部431,432に含まれる対象ラン41のラン長が中央側に位置するほど短くなり、かつ、両端部431,432間に位置する対象ラン41のラン長が設定幅となる。これにより、二値画像4の細線化処理を高速化するとともに、当該二値画像4が示すパターンが複雑な形状を有する場合でも、ヒゲ等の異常の発生が低減された美しい細線化画像4bを取得することができる。その結果、細線化画像4bを用いた検査等を適切に行うことが実現される。ステップS15では、様々な細線化アルゴリズムを採用することができ、本細線化方法は、汎用的に利用可能である。
【0050】
好ましくは、特定ラン群43を検出する際に、二値画像4において、所定の条件を満たしつつ上下方向に順に接続する対象ラン群を特定ラン群候補42として検出する工程(ステップS12)と、特定ラン群候補42が示す領域において、上下方向に沿う長さと、左右方向に沿う太さとを比較することにより、特定ラン群候補42が特定ラン群43であるか否かを判定する工程(ステップS13)とが行われる。これにより、特定ラン群43の検出を容易に行うことができる。
【0051】
好ましくは、各対象ラン41が上下それぞれに1個以下の対象ラン41のみと接続する対象ラン群が、特定ラン群43として検出される。このように、分岐を含まない対象ラン群を特定ラン群43として検出することにより、特定ラン群43のラン長の短縮処理が複雑化することを避けることができ、適切な細線化画像4bを容易に取得することができる。
【0052】
好ましくは、上下方向に互いに接続する2個の対象ラン41の各組合せにおける、左端同士の左右方向の距離、および、右端同士の左右方向の距離が、所定画素数以下である対象ラン群が、特定ラン群43として検出される。仮に、左端または右端の位置が左右方向に過度に離れた2個の対象ラン41が特定ラン群43に含まれる場合、細線化画像において、当該2個の対象ラン41に対応する部分が、理想的な細線化パターンの形状から乖離する場合がある。一方、上記ステップS12,S13では、このような2個の対象ラン41が特定ラン群43に含まれることを防止することにより、適切な細線化画像4bを取得することができる。
【0053】
好ましくは、上端から下端に向かって対象ラン41の重心の移動方向が一定である対象ラン群が、特定ラン群43として検出される。これにより、特定ラン群43の端部431,432に、上記重心の移動方向が変化する、折れ曲がった部分が含まれる等して、細線化画像4bにおいて異常が発生することを防止することができる。また、例えば、ステップS12にて特定ラン群候補42を検出する場合に、上記重心の移動方向が一定である対象ラン群、すなわち、折れ曲がった部分を含まない対象ラン群を特定ラン群候補42として検出することにより、ステップS13において、特定ラン群候補42が示す領域の長さと太さとの比較を容易に行うことができる。
【0054】
好ましくは、ステップS14における特定ラン群43のラン長の短縮により、上下方向に関して隣接する2個の対象ラン41が左右方向に離れる場合に、当該2個の対象ラン41の少なくとも一方のラン長が延長される。これにより、部分細線化画像4aにおいて、ラン間が途切れることを防止することができる。
【0055】
細線化装置1は、特定ラン群検出部20と、第1細線化部21と、第2細線化部22とを備える。特定ラン群検出部20は、ランレングス符号化された二値画像4において、ラン長に対応する左右方向に対して交差する線状領域を示し、かつ、上下方向に順に接続する対象ラン群を特定ラン群43として検出する。第1細線化部21は、特定ラン群43において、上下方向の両端部431,432に含まれる対象ラン41のラン長が中央側に位置するほど短くなり、かつ、両端部431,432間に位置する対象ラン41のラン長が設定幅となるように、特定ラン群43のラン長を短縮することにより、ランレングス符号化された部分細線化画像4aを取得する。第2細線化部22は、部分細線化画像4aに対して所定の細線化処理を施すことにより細線化画像4bを取得する。これにより、二値画像4の細線化処理を高速化するとともに、ヒゲ等の異常の発生が低減された美しい細線化画像4bを取得することができる。
【0056】
ところで、上記数2では、特定ラン群43の端部431,432の上下方向における大きさがYtにより規定されている。Ytを小さくすることにより、処理スピードを高くすることが可能である。Ytを大きくすることにより、ヒゲ等の異常がさらに発生しにくくなり、細線化画像4bの質が向上する。また、上記数1では、係数αが大きいほど、特定ラン群候補42が特定ラン群43として採用されやすくなり、処理スピードを高くすることが可能となる。また、係数αが小さいほど、特定ラン群候補42が特定ラン群43として採用されにくくなり、細線化画像4bにおいて異常の発生が抑制される。さらに、上記の条件2についても、判定画素数が大きいほど、処理スピードが高くなり、判定画素数が小さいほど、異常の発生が抑制される。以上のように、細線化処理では、処理スピードの高速化と、細線化画像4bの質の向上とがトレードオフの関係となるため、上記Yt、係数α、判定画素数等は、細線化処理に求められる処理スピードや細線化画像の質に応じて適宜決定されてよい。
【0057】
上記細線化方法および細線化装置1では様々な変形が可能である。
【0058】
特定ラン群検出部20において、特定ラン群候補42の検出に用いられる条件1~3の全部または一部は、省略されてもよく、他の条件が用いられてもよい。また、特定ラン群候補42を検出することなく、特定ラン群43が直接的に検出されてもよい。
【0059】
ステップS13において、上端の対象ラン41の重心と下端の対象ラン41の重心とを結ぶ線L1(
図7参照)の傾きが所定値よりも大きい特定ラン群候補42を特定ラン群43とする場合、ステップS14におけるラン長の短縮において、上下方向に関して隣接する2個の対象ラン41が左右方向に1画素以上離れやすくなる。その結果、ラン長の延長処理に要する時間が増加する可能性がある。したがって、当該傾きが所定値よりも大きい特定ラン群候補42については、特定ラン群43ではないと判定され、ラン長の延長処理に要する時間の増加が抑制されてもよい。
【0060】
細線化処理の対象となる二値画像4が、左右方向に延びる線状パターンを多く含む場合には、左右方向と上下方向を転置した後に、
図4の処理が行われてもよい。
【0061】
上記細線化方法および細線化装置1は、基板上のパターンや細胞の検査以外の用途に用いられてもよい。
【0062】
上記実施の形態および各変形例における構成は、相互に矛盾しない限り適宜組み合わされてよい。
【符号の説明】
【0063】
1 細線化装置
3 コンピュータ
4 二値画像
4a 部分細線化画像
4b 細線化画像
20 特定ラン群検出部
21 第1細線化部
22 第2細線化部
41,41a~41l 対象ラン
42 特定ラン群候補
43 特定ラン群
431,432 (特定ラン群の)端部
811 プログラム
S11~S15 ステップ