(58)【調査した分野】(Int.Cl.,DB名)
端面が開口していない状態であり且つ所定の色で着色されている状態である複数の長尺物の本数であって、相互に隣接する長尺物の少なくとも一部の領域に隙間が形成されるように段積みされている複数の長尺物の本数を測定する長尺物本数測定装置であって、
前記複数の長尺物の端面を撮像することにより得られたカラー画像である元画像を取得する元画像取得手段と、
前記元画像取得手段により取得された元画像から、前記端面の色に応じて予め設定された第1の色空間要素の値を導出し、それぞれの画素が、当該第1の色空間要素の値に応じた画素値を有する第1のグレースケール画像を作成する第1のグレースケール画像作成手段と、
前記第1のグレースケール画像作成手段により作成された第1のグレースケール画像を2値化してグレースケール2値化画像を作成するグレースケール2値化画像作成手段と、
前記グレースケール2値化画像作成手段により作成されたグレースケール2値化画像に基づいて、前記端面の色に対応する画素値を有する一纏まりの領域を識別し、識別した一纏まりの領域の外縁と内縁の位置を、それぞれ当該一纏まりの領域が存在している方向に移動させることにより、当該一纏まりの領域を複数の領域に分離する領域分離手段と、
前記領域分離手段により分離された領域の数に基づいて、前記複数の長尺物を計数する計数手段と、
前記計数手段により計数された前記複数の長尺物の数を含む情報を出力する出力手段と、を有し、
前記第1の色空間要素は、前記段積みされている複数の長尺物の端面の色である場合と、前記段積みされている複数の長尺物の端面の背景の色である場合とで異なる値をとる要素であることを特徴とする長尺物本数測定装置。
前記領域分離手段は、前記端面の色に対応する画素値を有する一纏まりの領域の外縁と内縁に位置する画素の位置を、当該画素を接点とする接線に垂直な方向であって、当該当該一纏まりの領域が存在している方向にそれぞれ移動させることにより、当該一纏まりの領域を複数の領域に分離することを特徴とする請求項1に記載の長尺物本数測定装置。
前記元画像取得手段により取得された元画像から、前記端面の色に応じて予め設定された第2の色空間要素の値を導出し、それぞれの画素が、当該第2の色空間要素の値に応じた画素値を有する第2のグレースケール画像を作成する第2のグレースケール画像作成手段と、
前記グレースケール2値化画像作成手段により作成されたグレースケール2値化画像に基づいて、前記端面の色に対応する画素値を有する領域を、前記第2のグレースケール画像作成手段により作成された第2のグレースケール画像から抽出して計数対象領域抽出画像を作成する計数対象領域抽出画像作成手段と、
前記計数対象領域抽出画像作成手段により作成された計数対象領域抽出画像を2値化して計数対象領域2値化画像を作成する計数対象領域2値化画像作成手段と、を更に有し、
前記領域分離手段は、前記計数対象領域2値化画像作成手段により作成された計数対象領域2値化画像から、前記端面の色に対応する画素値を有する一纏まりの領域を識別し、識別した一纏まりの領域の外縁と内縁の位置を、それぞれ当該一纏まりの領域が存在している方向に移動させることにより、当該一纏まりの領域を複数の領域に分離し、
前記第2の色空間要素は、前記段積みされている複数の長尺物の端面の色である場合の値と、それらの間の隙間の領域の色である場合の値との差が前記第1の色空間要素におけるものよりも大きくなる要素であることを特徴とする請求項1又は2に記載の長尺物本数測定装置。
前記グレースケール2値化画像作成手段により作成されたグレースケール2値化画像における、前記端面の色に対応しない画素値を有する画素からなる一纏まりの領域の画素値のうち、前記端面の色に対応する画素値を有する画素からなる一纏まりの領域に囲まれた領域の画素値を、前記端面の色に対応する画素値に変更して隙間補完後2値化画像を作成する隙間補完後2値化画像作成手段を更に有し、
前記計数対象領域抽出画像作成手段は、前記隙間補完後2値化画像作成手段により作成された隙間補完後2値化画像における、前記端面の色に対応する画素値を有する領域を、前記第2のグレースケール画像作成手段により作成された第2のグレースケール画像から抽出して計数対象領域抽出画像を作成することを特徴とする請求項3に記載の長尺物本数測定装置。
端面が開口していない状態であり且つ所定の色で着色されている状態である複数の長尺物の本数であって、相互に隣接する長尺物の少なくとも一部の領域に隙間が形成されるように段積みされている複数の長尺物の本数を測定する長尺物本数測定方法であって、
前記複数の長尺物の端面を撮像することにより得られたカラー画像である元画像を取得する元画像取得工程と、
前記元画像取得工程により取得された元画像から、前記端面の色に応じて予め設定された第1の色空間要素の値を導出し、それぞれの画素が、当該第1の色空間要素の値に応じた画素値を有する第1のグレースケール画像を作成する第1のグレースケール画像作成工程と、
前記第1のグレースケール画像作成工程により作成された第1のグレースケール画像を2値化してグレースケール2値化画像を作成するグレースケール2値化画像作成工程と、
前記グレースケール2値化画像作成工程により作成されたグレースケール2値化画像に基づいて、前記端面の色に対応する画素値を有する一纏まりの領域を識別し、識別した一纏まりの領域の外縁と内縁の位置を、それぞれ当該一纏まりの領域が存在している方向に移動させることにより、当該一纏まりの領域を複数の領域に分離する領域分離工程と、
前記領域分離工程により分離された領域の数に基づいて、前記複数の長尺物を計数する計数工程と、
前記計数工程により計数された前記複数の長尺物の数を含む情報を出力する出力工程と、を有し、
前記第1の色空間要素は、前記段積みされている複数の長尺物の端面の色である場合と、前記段積みされている複数の長尺物の端面の背景の色である場合とで異なる値をとる要素であることを特徴とする長尺物本数測定方法。
前記領域分離工程は、前記端面の色に対応する画素値を有する一纏まりの領域の外縁と内縁に位置する画素の位置を、当該画素を接点とする接線に垂直な方向であって、当該当該一纏まりの領域が存在している方向にそれぞれ移動させることにより、当該一纏まりの領域を複数の領域に分離することを特徴とする請求項6に記載の長尺物本数測定方法。
前記元画像取得工程により取得された元画像から、前記端面の色に応じて予め設定された第2の色空間要素の値を導出し、それぞれの画素が、当該第2の色空間要素の値に応じた画素値を有する第2のグレースケール画像を作成する第2のグレースケール画像作成工程と、
前記グレースケール2値化画像作成工程により作成されたグレースケール2値化画像に基づいて、前記端面の色に対応する画素値を有する領域を、前記第2のグレースケール画像作成工程により作成された第2のグレースケール画像から抽出して計数対象領域抽出画像を作成する計数対象領域抽出画像作成工程と、
前記計数対象領域抽出画像作成工程により作成された計数対象領域抽出画像を2値化して計数対象領域2値化画像を作成する計数対象領域2値化画像作成工程と、を更に有し、
前記領域分離工程は、前記計数対象領域2値化画像作成工程により作成された計数対象領域2値化画像から、前記端面の色に対応する画素値を有する一纏まりの領域を識別し、識別した一纏まりの領域の外縁と内縁の位置を、それぞれ当該一纏まりの領域が存在している方向に移動させることにより、当該一纏まりの領域を複数の領域に分離し、
前記第2の色空間要素は、前記段積みされている複数の長尺物の端面の色である場合の値と、それらの間の隙間の領域の色である場合の値との差が前記第1の色空間要素におけるものよりも大きくなる要素であることを特徴とする請求項6又は7に記載の長尺物本数測定方法。
前記グレースケール2値化画像作成工程により作成されたグレースケール2値化画像における、前記端面の色に対応しない画素値を有する画素からなる一纏まりの領域の画素値のうち、前記端面の色に対応する画素値を有する画素からなる一纏まりの領域に囲まれた領域の画素値を、前記端面の色に対応する画素値に変更して隙間補完後2値化画像を作成する隙間補完後2値化画像作成工程を更に有し、
前記計数対象領域抽出画像作成工程は、前記隙間補完後2値化画像作成工程により作成された隙間補完後2値化画像における、前記端面の色に対応する画素値を有する領域を、前記第2のグレースケール画像作成工程により作成された第2のグレースケール画像から抽出して計数対象領域抽出画像を作成することを特徴とする請求項8に記載の長尺物本数測定方法。
【発明を実施するための形態】
【0013】
以下、図面を参照しながら、本発明の一実施形態を説明する。尚、各図では、表記の都合上、一部の構成を簡略化又は省略化している。
(撮像される長尺物の配置と長尺物を撮像するための装置の構成)
図1は、スタック10に保管されている複数の鋼管20a〜20tと、当該複数の鋼管20a〜20tの端面の画像を撮像するための撮像装置30と、当該複数の鋼管20a〜20tの端面を照明するための照明装置41、42の配置の一例を示す図である。
図1(a)は、スタック10をその上方から見た図であり、
図1(b)、
図1(c)は、それぞれ
図1(a)に示すA方向(鋼管20の端面方向)、B方向(鋼管20の側面方向)から見た図である。
【0014】
図1に示す例では、鋼管20a〜20tは、同一の仕様のものある。また、鋼管20a〜20tのそれぞれの端部には、同じ色で着色されたキャップ50a〜50tが取り付けられている。このように、本実施形態では、鋼管20a〜20tの端面は、キャップ50a〜50tにより閉塞されている。また、本実施形態では、キャップ50a〜50tの色が赤色であるとする。
本実施形態では、撮像装置30は、デジタルスチルカメラであり、スタック10に段積みで保管されている全ての鋼管20a〜20tの端面のカラー静止画像を、鋼管20a〜20tの端面と略正対する位置から撮像する。前述したように、鋼管20a〜20tのそれぞれの端部には、同じ色で着色されたキャップ50a〜50tが取り付けられている。よって、鋼管20a〜20tの端面の画像を撮像することは、鋼管20a〜20tの端面に位置するキャップ50a〜50tを撮像することと等価となる。以下の説明では、撮像装置30により撮像された「鋼管20a〜20tの端面(キャップ50a〜50t)の画像」を必要に応じて「元画像」と称する。
【0015】
照明装置41、42は、それぞれ撮像装置30の左、右から、スタック10に保管されている全ての鋼管20a〜20tの端面(キャップ50a〜50t)を可及的に一様に照明できる位置に配置されている。
【0016】
(長尺物本数測定装置の構成)
図2は、長尺物本数測定装置100の機能的な構成の一例を示すブロック図である。
長尺物本数測定装置100は、照明装置41、42により照明された複数の鋼管20a〜20tの端面(キャップ50a〜50t)を、当該端面と正対する位置から撮像装置30によって撮像されることにより得られた画像(元画像)を画像処理して、複数の鋼管20a〜20tを自動的に計数するものである。
図2に示す長尺物本数測定装置100は、例えば、CPU、ROM、RAM、HDD、及び各種のインターフェースを備えたコンピュータ(例えばPC)を用いることにより実現することができる。以下に、長尺物本数測定装置100が有する機能の一例を説明する。尚、長尺物本数測定装置100と撮像装置30は、USBケーブル等により、相互に通信可能に接続されている。
【0017】
(端面色情報取得部101)
端面色情報取得部101は、オペレータによる操作に基づいて、計数対象となる長尺物(鋼管20)の端面の色を示す情報を、上位コンピュータ200に要求し、上位コンピュータ200から取得する。尚、以下の説明では、「計数対象となる長尺物(鋼管20)の端面の色を示す情報」を必要に応じて「端面色情報」と称する。
【0018】
尚、端面色情報取得部101は、上位コンピュータ200が自発的に送信した端面色情報を取得してもよい。このようにした場合、端面色情報取得部101は、端面色情報と、スタック10を識別する情報との一組の情報を取得する。そして、端面色情報取得部101は、取得した当該一組の情報を記憶しておき、オペレータによる操作に基づいて入力されたスタックの情報に合致した端面色情報を読み出す。
この他、端面色情報取得部101は、オペレータによる操作に基づいて、端面色情報を直接取得してもよい(すなわち、オペレータが端面色情報を指定してもよい)。
【0019】
前述したように、本実施形態では、キャップ50の色は赤色である。よって、端面色情報取得部101は、端面色情報として赤色であることを示す情報を取得する。
端面色情報取得部101は、例えば、CPU、ROM、RAM、ユーザインターフェース、及び通信インターフェースを用いることにより実現できる。
【0020】
(色空間要素選択部102)
色空間要素選択部102は、端面色情報取得部101により取得された端面色情報により特定される色に対応する「色空間の要素」を色空間要素選択テーブルから選択する。
図3は、色空間要素選択テーブルの一例を示す図である。
図3に示すように、色空間要素選択テーブル300には、色と、第1の色空間要素と、第2の色空間要素とが相互に関連付けられて登録されている。
【0021】
色空間要素選択テーブル300における「色」は、端面色情報により特定される色を指す。よって、色空間要素選択テーブル300における「色」として、端面色情報により特定される色として想定される色が予め設定される。
また、「第1の色空間要素」、「第2の色空間要素」は、後述するようにして元画像取得部103により取得される画像から選択する「色空間の要素」を示す。
「第1の色空間要素」としては、鋼管20の端面(キャップ50)の領域の色(端面色情報により特定される色)である場合と、鋼管20(キャップ50)の背景の色である場合とで(可及的に大きく)異なる値をとる要素が予め設定される。
「第2の色空間要素」としては、鋼管20の端面(キャップ50)の領域の色(端面色情報により特定される色)であるときの値と、それらの間の隙間の領域の色(ここでは黒色)であるときの値との差が第1の色空間要素におけるものよりも大きくなる要素が予め設定される。また、「第2の色空間要素」としては、鋼管20の端面(キャップ50)の色のムラによって値が大きく変化しない要素が好ましい。
【0022】
図3に示す色空間要素選択テーブル300では、端面色情報により特定される色が赤色である場合には、第1の色空間要素として、CIE Lab色空間のa
*が選択され、第2の色空間要素として、RGB色空間のRが選択される。また、端面色情報により特定される色が緑色である場合には、第1の色空間要素として、CIE Lab色空間のa
*が選択され、第2の色空間要素として、RGB色空間のGが選択される。また、端面色情報により特定される色が黄色である場合には、第1の色空間要素として、HSV色空間のV(明度)が選択され、第2の色空間要素として、RGB色空間のRが選択される。また、端面色情報により特定される色が白色である場合には、第1の色空間要素として、HSV色空間のV(明度)が選択され、第2の色空間要素として、RGB色空間のRが選択される。
前述したように、本実施形態では、キャップ50の色が赤色であるので、端面色情報により特定される色は赤色である。よって、色空間要素選択部102は、色空間要素選択テーブル300から、第1の色空間要素としてCIE Lab色空間のa
*を、第2の色空間要素としてRGB色空間のRを、それぞれ選択する。
色空間要素選択部102は、例えば、CPU、ROM、RAM、及びHDDを用いることにより実現できる。
【0023】
(元画像取得部103)
元画像取得部103は、撮像装置30で撮像された元画像を入力して記憶する。本実施形態では、撮像装置30で元画像が撮像されると、元画像のデータが元画像取得部103に自動的に入力されるものとする。ただし、必ずしもこのようにする必要はなく、撮像装置30は、元画像取得部103からの要求に応じて元画像のデータを元画像取得部103に送信するようにしてもよい。
図4は、元画像の一例を示す図である。前述したように元画像400はカラー画像である。また、本実施形態では、元画像は、RGB色空間で表現される画像であるものとする。
元画像取得部103は、例えば、CPU、RAM、ROM、HDD、及び通信インターフェースを用いることにより実現できる。
【0024】
(第1のグレースケール画像作成部104)
第1のグレースケール画像作成部104は、元画像取得部103により取得された元画像のそれぞれの画素のデータから、色空間要素選択部102により選択された第1の色空間要素の値を導出し、それぞれの画素が、当該第1の色空間要素の値に応じた画素値を有するグレースケールの画像を作成する。第1のグレースケール画像作成部104により作成されるグレースケールの画像を、以下の説明では必要に応じて「第1のグレースケール画像」と称する。
【0025】
図5は、第1のグレースケール画像の一例を示す図である。
図5に示す第1のグレースケール画像500は、
図4に示した元画像400から得られたものである。
前述したように、第1の色空間要素は、鋼管20の端面(キャップ50)の領域の色(端面色情報により特定される色)である場合と、鋼管20(キャップ50)の背景の色である場合とで異なる値をとる要素である。よって、
図5に示すように、赤色であるキャップ50の領域(キャップ50が写し出されている領域)の画素値が、他の赤色以外の色の領域の画素値と(大きく)異なる第1のグレースケール画像500が得られる。
第1のグレースケール画像作成部104は、例えば、CPU、RAM、ROM、及びHDDを用いることにより実現できる。
【0026】
(グレースケール2値化画像作成部105)
グレースケール2値化画像作成部105は、第1のグレースケール画像作成部104により作成された第1のグレースケール画像の各画素の画素値を、予め設定された閾値に基づいて2値化する。具体例を説明すると、グレースケール2値化画像作成部105は、第1のグレースケール画像の各画素について、画素値が閾値以上(又は閾値未満)である画素に論理「1」を割り当て、画素値が当該閾値未満(又は閾値以上)である画素に論理「0」を割り当てることにより第1のグレースケール画像を2値化する。また、色空間要素選択部102により選択された第1の色空間要素に応じて、グレースケール2値化画像作成部105は、第1のグレースケール画像の各画素について、画素値が所定の範囲内(又は所定の範囲外)である画素に論理「1」を割り当て、画素値が当該所定の範囲外(又は所定の範囲内)である画素に論理「0」を割り当てることにより第1のグレースケール画像を2値化することもできる。本実施形態では、端面色情報により特定される色(ここでは赤色)に応じた画素値を有する画素に可及的に論理「1」が割当てられ、それ以外の色に応じた画素値を有する画素に可及的に論理「0」が割当てられるようにするための閾値が、オペレータによる操作に基づいて予め設定されている。以下の説明では、グレースケール2値化画像作成部105により作成される2値化された画像を、必要に応じて「グレースケール2値化画像」と称する。
【0027】
図6は、グレースケール2値化画像の一例を示す図である。
図6に示すグレースケール2値化画像600は、
図5に示した第1のグレースケール画像500から得られたものである。
図6に示すように、グレースケール2値化画像600では、概ね、キャップ50の領域に論理「1」が割当てられ(
図6のグレーで塗りつぶされている領域を参照)、且つ、それ以外の領域に論理「0」が割当てられる(
図6の白色の領域を参照)。
グレースケール2値化画像作成部105は、例えば、CPU、RAM、ROM、及びユーザインターフェースを用いることにより実現できる。尚、2値化処理の前にシェーディング補正を行うようにしてもよい。
【0028】
(隙間補完後2値化画像作成部106)
隙間補完後2値化画像作成部106は、グレースケール2値化画像作成部105により作成されたグレースケール2値化画像において、画素値が「1」である領域に囲まれている「画素値が「0」である領域」の画素値を「1」に変更する。本実施形態では、隙間補完後2値化画像作成部106は、グレースケール2値化画像において、画素値が「1」である画素と、当該画素に対し縦、横及び斜めの何れかで隣接する画素であって、画素値が「1」である画素とを1つの領域とすることを、グレースケール2値化画像のそれぞれの画素について行う。隙間補完後2値化画像作成部106は、このようにして得られた領域の内側にある画素の画素値を全て「1」にする。
【0029】
ただし、必ずしもこのようにする必要はない。例えば、次のようにしてもよい。すなわち、グレースケール2値化画像において、画素値が「0」である画素と、当該画素に対し縦、横及び斜めの何れかで隣接する画素であって、画素値が「0」である画素とを1つの領域とすることを、グレースケール2値化画像のそれぞれの画素について行い、このようにして得られた領域のうち、外縁の全ての画素が、画素値が「1」の画素と接している領域の画素値を全て「1」にするようにしてもよい。
【0030】
以下の説明では、隙間補完後2値化画像作成部106により画素値が変更されたグレースケール2値化画像を、必要に応じて「隙間補完後2値化画像」と称する。
図7は、隙間補完後2値化画像の一例を示す図である。
図7に示す隙間補完後2値化画像700は、
図6に示したグレースケール2値化画像600から得られたものである。
図7に示すように、
図6に示したグレースケール2値化画像600において、グレーで塗りつぶされている領域(画素値が「1」の領域)に囲まれている白色の領域(画素値が「0」の領域)がグレーで塗りつぶされる(画素値が「0」から「1」に変更される)。このようにすることによって、端面色情報により特定される色(ここでは赤色)が存在する領域(すなわちキャップ50が存在する一纏まりの領域)を他の領域と明確に区別することができる。
隙間補完後2値化画像作成部106は、例えば、CPU、RAM、及びROMを用いることにより実現できる。
【0031】
(第2のグレースケール画像作成部107)
第2のグレースケール画像作成部107は、元画像取得部103により取得された元画像のそれぞれの画素のデータから、色空間要素選択部102により選択された第2の色空間要素の値を導出し、それぞれの画素が、当該第2の色空間要素の値に応じた画素値を有するグレースケールの画像を作成する。第2のグレースケール画像作成部107により作成されるグレースケールの画像を、以下の説明では必要に応じて「第2のグレースケール画像」と称する。
【0032】
図8は、第2のグレースケール画像の一例を示すである。
図8に示す第2のグレースケール画像800は、
図4に示した元画像400から得られたものである。
前述したように、第2の色空間要素は、色のムラによって値が大きく変化せず、且つ、鋼管20の端面(キャップ50)の領域の色(端面色情報により特定される色)であるときの値と、それらの間の隙間の領域の色(ここでは黒色)であるときの値との差が第1の色空間要素におけるものよりも大きくなる要素である。よって、
図8に示すように、第2のグレースケール画像800では、元画像400に対し、赤色であるキャップ50の領域の画素値の差が小さくなり(色むらが低減され)、且つ、キャップ50の領域の画素値とそれらの隙間の領域の画素値との差が大きくなる。
第2のグレースケール画像作成部107は、例えば、CPU、RAM、ROM、及びHDDを用いることにより実現できる。
【0033】
(計数対象領域抽出画像作成部108)
計数対象領域抽出画像作成部108は、第2のグレースケール画像作成部107により作成された第2のグレースケール画像から、領域補完後2値化画像作成部106により作成された隙間補完後2値化画像の画素値が「1」である領域を抽出する。以下の説明では、このようにして計数対象領域抽出画像作成部108により得られる画像を、必要に応じて「計数対象領域抽出画像」と称する。
図9は、計数対象領域抽出画像900の一例を示す図である。
図9に示す計数対象領域抽出画像900は、
図7に示した隙間補完後2値化画像700と、
図8に示した第2のグレースケール画像800とから得られたものである。
【0034】
前述したように、第2のグレースケール画像800では、第1のグレースケール画像500に比べて、赤色であるキャップ50の領域の画素値の差が小さくなり、且つ、キャップ50の領域の画素値とそれらの隙間の領域の画素値との差が大きくなる。よって、第2のグレースケール画像800から、計数対象領域抽出画像900に基づき、キャップ50の領域を抽出すると、キャップ50の領域を、当該キャップ50を際立たせた状態で抽出することができる。
計数対象領域抽出画像作成部108は、例えば、CPU、RAM、ROM、及びHDDを用いることにより実現できる。
【0035】
(計数対象領域2値化画像作成部109)
計数対象領域2値化画像作成部109は、計数対象領域抽出画像作成部108により作成された計数対象領域抽出画像の各画素の画素値を、予め設定された閾値に基づいて2値化する。具体的に説明すると、計数対象領域2値化画像作成部109は、計数対象領域抽出画像の各画素について、画素値が閾値以上(又は未満)である画素に論理「1」を割り当て、画素値が当該閾値未満(又は以上)である画素に論理「0」を割り当てることにより計数対象領域抽出画像を2値化する。また、色空間要素選択部102により選択された第2の色空間要素に応じて、計数対象領域2値化画像作成部109は、計数対象領域抽出画像の各画素について、画素値が所定の範囲内(又は所定の範囲外)である画素に論理「1」を割り当て、画素値が当該所定の範囲外(又は所定の範囲内)である画素に論理「0」を割り当てることにより計数対象領域抽出画像を2値化することもできる。本実施形態では、端面色情報により特定される色(ここでは赤色)に応じた画素値を有する画素に可及的に論理「1」が割当てられ、それ以外の色に応じた画素値を有する画素に可及的に論理「0」が割当てられるようにするための閾値が、オペレータによる操作に基づいて予め設定されている。以下の説明では、計数対象領域2値化画像作成部109により作成される2値化された画像を、必要に応じて「計数対象領域2値化画像」と称する。
図10は、計数対象領域2値化画像の一例を示す図である。
図10に示す計数対象領域2値化画像1000は、
図9に示した計数対象領域抽出画像900から得られたものである。前述したように、計数対象領域抽出画像900では、キャップ50の領域の画素値の差が小さくなり、且つ、キャップ50の領域の画素値とそれらの隙間の領域の画素値との差が大きくなる。よって、計数対象領域抽出画像900を2値化すると、キャップ50の領域と、それらの間の領域とを明確に区別することができる。
計数対象領域2値化画像作成部109は、例えば、CPU、RAM、ROM、及びHDDを用いることにより実現できる。
【0036】
(領域分離部110)
領域分離部110は、計数対象領域2値化画像作成部109により作成された計数対象領域2値化画像の画素値が「1」である画素と、当該画素に対し縦、横及び斜めの何れかで隣接する画素であって、画素値が「1」である画素とを1つの領域とすることを計数対象領域2値化画像のそれぞれの画素について行うことにより得られた領域を縮小させることにより、計数対象領域2値化画像を複数の領域(個々のキャップ50の領域)に分離する。以下の説明では、複数の領域に分離された状態の計数対象領域2値化画像を、必要に応じて「領域分離2値化画像」と称する。
図11は、領域分離2値化画像の一例を示す図である。
図11に示す領域分離2値化画像1100は、
図10に示した計数対象領域2値化画像1000から得られたものである。
【0037】
図12は、計数対象領域2値化画像を複数の領域に分離する様子の一例を概念的に示す図である。
まず、領域分離部110は、画素値が「1」である画素と、当該画素に対し縦、横及び斜めの何れかで隣接する画素であって、画素値が「1」である画素とを1つの領域とすることを計数対象領域2値化画像のそれぞれの画素について行う。これにより、画素値が「1」である画素により構成される閉領域であって、当該外縁の画素に接する画素の少なくとも1つが、画素値が「0」である画素となる閉領域(所謂ブロブ)が導出される。
図10に示す例では、計数対象領域2値化画像1000において、グレーで表示されている領域が導出される。
【0038】
次に、領域分離部110は、導出した閉領域の外縁の画素に対し、当該外縁の画素を接点とする接線に垂直な方向であって、当該閉領域が存在している方向に、所定の画素数分だけ離隔した位置を、当該閉領域の外縁の位置に変更することを、当該閉領域の外縁の画素について行う(
図12の一番上の図において塗りつぶされている領域の外縁に付されている矢印線を参照)。ここで、導出した閉領域の外縁の位置の変更は、変更前の閉領域の外縁の画素と変更後の閉領域の外側との間に位置する画素の画素値を「1」から「0」に変更することにより行うことができる。
【0039】
このような処理と共に、領域分離部110は、導出した閉領域の内縁の画素に対し、当該外縁の画素を接点とする接線に垂直な方向であって、当該閉領域が存在している方向に、所定の画素数分だけ離隔した位置を、当該閉領域の内縁の位置に変更することを、当該閉領域の内縁の画素について行う(
図12の一番上の図において塗りつぶされている領域の内縁に付されている矢印線を参照)。ここで、閉領域の内縁の位置の変更は、変更前の閉領域の外縁の画素と変更後の閉領域の外側との間に位置する画素の画素値を「1」から「0」に変更することにより行うことができる。また、変更前の閉領域の内縁と変更後の閉領域の内縁との間隔(画素数)と、変更前の閉領域の外縁と変更後の閉領域の外縁との間隔(画素数)は(すなわち、前記所定の画素数は)、同じ値となる。
【0040】
尚、例えば、ある鋼管20がずれた状態で段積みされている場合には、撮像装置30により撮像される鋼管20の端面側において、当該鋼管20が他の鋼管20と接触していないこと(又は少しの領域でしか接触していないこと)が生じ得る。そうすると、計数対象領域2値化画像作成部109により作成された計数対象領域2値化画像において、内縁が存在しない閉領域が孤立して存在することがある。このような場合、当該内縁が存在しない閉領域については、例えば、当該閉領域の外縁の位置だけを前述したようにして変更することができる。
【0041】
以上のような処理を、
図12に示すように段階的に行うことにより、1つの閉領域となっているキャップ50の領域を(
図12の一番上に示す図を参照)、個々のキャップ50の領域に分離することができる(
図12の一番下に示す図を参照)。
以上のようにして、
図11に示す領域分離2値化画像1100が作成される。この領域分離2値化画像1100により、個々のキャップ50の領域(20個の領域)が他のキャップ50の領域と明確に区別される(すなわち、個々のキャップ50の領域(20個の領域)が単独で存在するようになる)。
領域分離部110は、例えば、CPU、RAM、及びROMを用いることにより実現できる。
【0042】
(ブロブ処理部111)
ブロブ処理部111は、領域分離部110により作成された領域分離2値化画像から、画素値が「1」である画素により構成される閉領域であって、当該外縁の画素に接する画素の少なくとも1つが、画素値が「0」である画素となる閉領域(所謂ブロブ)を導出する。具体的に説明すると、ブロブ処理部111は、領域分離部110により作成された領域分離2値化画像において、画素値が「1」である画素と、当該画素に対し縦、横及び斜めの何れかで隣接する画素であって、画素値が「1」である画素とを1つの領域とすることを、領域分離2値化画像のそれぞれの画素について行うことにより、ブロブを導出する。
【0043】
次に、ブロブ処理部111は、導出した各ブロブに対してラベリング処理(番号の割り振り)を行う。
図11に示す例では、導出した各ブロブに対して20個の番号が個別に割り振られる。
ブロブ処理部111は、例えば、CPU、RAM、及びROMを用いることにより実現できる。
【0044】
(本数導出部112)
本数導出部112は、ブロブ処理部111により各ブロブに対して割り振られた番号の総数を、計測対象物の本数として導出する。
図11に示す例では、(スタック10において段積みされた)鋼管20の本数として「20」が導出される。
本数導出部112は、例えば、CPU、RAM、及びROMを用いることにより実現できる。
【0045】
(出力画像作成部113)
出力画像作成部113は、本数導出部112により導出された計測対象物(ここでは鋼管20)の本数を含む画像を表示するための表示データを作成する。
本実施形態では、出力画像作成部113は、元画像取得部103により取得された元画像と、本数導出部112により導出された鋼管20の本数とを含む画像を表示するための表示データを作成する。さらに、本実施形態では、元画像におけるキャップ50の部分の領域を所定の色で塗りつぶした状態で元画像を表示する。このために、出力画像作成部113は、以下の処理を行う。
【0046】
まず、出力画像作成部113は、領域分離部110により作成された領域分離2値化画像(
図11を参照)の画素値が「1」の閉領域(所謂ブロブ)を抽出する。次に、出力画像作成部113は、抽出した閉領域の外縁の画素に対し、当該外縁の画素を接点とする接線に垂直な方向であって、当該閉領域が存在していない方向に、所定の画素数分だけ離隔した位置を、当該閉領域の外縁の位置に変更することを、当該閉領域の外縁の画素について行う。ここで、抽出した閉領域の外縁の位置の変更は、変更前の閉領域の外縁の画素と変更後の閉領域の外側との間に位置する画素の画素値を「0」から「1」に変更することにより行うことができる。また、所定の画素数は、領域分離部110における閉領域の外縁・内縁の位置の変更分の1/n倍(nは1以上の数、例えば、「1.25」)した画素数(前記所定の間隔(画素数)×1/n)である。尚、このようにして得られた所定の画素数が整数でない場合には、例えば、小数点以下の値を切り捨てたり切り上げたりすることにより、前記所定の画素数を整数にする。これにより、領域分離部110により作成された個々の閉領域(所謂ブロブ)の大きさを、個々の閉領域が相互に隣接しない範囲で拡大することができる。
【0047】
次に、出力画像作成部113は、元画像のデータと、元画像取得部103により取得された元画像の領域のうち、以上のようにして得られた領域が所定の色に変更されるようにすることを示す情報を、表示データに含める。更に、出力画像作成部113は、本数導出部112により導出された鋼管20の本数を示す情報が、所定の領域に所定の態様で表示されるようにすることを示す情報も表示データに含める。
出力画像作成部113は、例えば、CPU、RAM、及びROMを用いることにより実現できる。
【0048】
(出力画像出力部114)
出力画像出力部114は、出力画像作成部113により作成された表示データを、表示装置に出力する。これにより、長尺物本数測定装置100に接続された表示装置(コンピュータディスプレイ)に鋼管20の本数を含む出力画像が表示される。
図13は、出力画像の一例を示す図である。
図13に示す出力画像1300は、
図4に示した元画像に基づいて得られたものである。
前述したように、出力画像1300には、キャップ50の領域が所定の色に変更された状態の元画像と、鋼管20の本数の情報が表示される。
図13に示す出力画像1300では、鋼管20の本数が左上の領域に表示され(
図13において「20」と示されている領域を参照)、キャップ50の領域が緑色に変更された状態で元画像が表示される。尚、キャップ50の領域が所定の色に変更された状態にするのは、キャップ50の領域をオペレータに識別させ易くするためである。
出力画像作成部113は、例えば、CPU、RAM、ROM、HDD、及び通信インターフェースを用いることにより実現できる。
【0049】
(動作フローチャート)
次に、
図14のフローチャートを参照しながら、長尺物本数測定装置100の動作の一例を説明する。
まず、ステップS1401において、端面色情報取得部101は、端面色情報を取得する。前述したように、端面色情報は、計数対象となる長尺物(鋼管20)の端面の色を示す情報である。
次に、ステップS1402において、色空間要素選択部102は、ステップS1401で取得された端面色情報により特定される色に対応する「第1の色空間要素と第2の色空間要素」を色空間要素選択テーブル300から選択する。
【0050】
次に、ステップS1403において、元画像取得部103は、撮像装置30で撮像された元画像を取得する(
図4を参照)。前述したように、元画像は、段積みされている鋼管20の端面(キャップ50)の画像である。
次に、ステップS1404において、第1のグレースケール画像作成部104は、ステップS1403で取得された元画像のそれぞれの画素のデータが、ステップS1402で選択された第1の色空間要素の値に応じた画素値になるように各画素値を変更して第1のグレースケールの画像を作成する(
図5を参照)。
【0051】
次に、ステップS1405において、グレースケール2値化画像作成部105は、ステップS1404で作成された第1のグレースケール画像の各画素の画素値を、予め設定された閾値に基づいて2値化してグレースケール2値化画像を作成する(
図6を参照)。
次に、ステップS1406において、隙間補完後2値化画像作成部106は、ステップS1405で作成されたグレースケール2値化画像において、画素値が「1」である領域に囲まれている「画素値が「0」である領域」の画素値を「1」に変更して隙間補完後2値化画像を作成する(
図7を参照)。
【0052】
次に、ステップS1407において、第2のグレースケール画像作成部107は、ステップS1403で取得された元画像のそれぞれの画素のデータが、ステップS1402で選択された第2の色空間要素の値に応じた画素値になるように各画素値を変更して第2のグレースケールの画像を作成する(
図8を参照)。
尚、ステップS1407の処理は、ステップS1403の処理が終了してから、ステップS1408の処理が開始するまでの間であれば、いつ行ってもよい。
次に、ステップS1408において、計数対象領域抽出画像作成部108は、ステップS1407で作成された第2のグレースケール画像から、ステップS1406で作成された隙間補完後2値化画像の画素値が「1」である領域を抽出して計数対象領域抽出画像を作成する(
図9を参照)。
【0053】
次に、ステップS1409において、計数対象領域2値化画像作成部109は、ステップS1408で作成された計数対象領域抽出画像の各画素の画素値を、予め設定された閾値に基づいて2値化して計数対象領域2値化画像を作成する(
図10を参照)。
次に、ステップS1410において、領域分離部110は、ステップS1409で作成された計数対象領域2値化画像の画素値が「1」である画素と、当該画素に対し縦、横及び斜めの何れかで隣接する画素であって、画素値が「1」である画素とを1つの領域とすることを当該計数対象領域2値化画像のそれぞれの画素について行うことにより得られた領域を縮小させることにより領域分離2値化画像1100を作成する(
図11、
図12を参照)。
【0054】
次に、ステップS1411において、ブロブ処理部111は、ステップS1410で作成された領域分離2値化画像から、画素値が「1」である画素により構成される閉領域であって、当該外縁の画素に接する画素の少なくとも1つが、画素値が「0」である画素となる閉領域(所謂ブロブ)を導出し、各ブロブに対してラベリング処理(番号の割り振り)を行う。
次に、ステップS1412において、本数導出部112は、ステップS1411で各ブロブに対して割り振られた番号の総数を、計測対象物の本数として導出する。
【0055】
次に、ステップS1413において、出力画像作成部113は、ステップS1403で取得された元画像と、ステップS1410で作成された領域分離2値化画像と、ステップS1412で導出された計測対象物の本数とに基づいて、計測対象物の本数を含む画像を表示するための表示データを作成する。
最後に、ステップS1414において、出力画像出力部114は、ステップS1413で作成された表示データを、表示装置に表示する(
図13を参照)。
【0056】
(まとめ)
以上のように本実施形態では、元画像から、CIE Lab色空間のa
*の値に応じた画素値を有する第1のグレースケールの画像と、RGB色空間のRの値に応じた画素値を有する第2のグレースケールの画像とを作成する。そして、第1のグレースケールの画像を2値化したグレースケール2値化画像を作成し、当該グレースケール2値化画像を用いて、鋼管20の端面(キャップ50)の領域を、第2のグレースケールの画像から抽出し計数対象領域2値化画像を作成する。そして、計数対象領域2値化画像の画素値が「1」である一纏まりの領域の外縁と内縁を当該領域が存在している方向に移動させることにより、計数対象領域2値化画像における、個々のキャップ50の領域を分離する。このように、CIE Lab色空間のa
*の値に応じた画素値を有する第1のグレースケールの画像を作成することにより、キャップ50を表す画素の画素値と背景を表す画素の画素値とに差をつけることができ、キャップ50が存在している領域を正確に識別することができる。また、計数対象領域2値化画像の画素値が「1」である一纏まりの領域の外縁と内縁を当該領域の内側に移動させることにより、段積みされている長尺物が存在している領域を分離することができる。よって、端面が開口していない状態であり且つ着色されている状態の複数の長尺物が段積みされている場合であっても、当該段積みされている複数の長尺物の本数を自動的に且つ正確に測定することができる。
【0057】
(変形例)
本実施形態では、本数を計測する対象となる長尺物が、端面にキャップが付けられた鋼管である場合を例に挙げて説明した。しかしながら、本数を計測する対象となる長尺物は、端面が開口していない状態であり、且つ、長尺物(の地色)と異なる所定の色で着色されている状態の長尺物であればよい。本数を計測する対象となる長尺物は、例えば、端面が地色と異なる所定の色で着色された棒鋼等であってもよい。
また、本実施形態では、本数を計測する対象となる長尺物の端面の形状が円形である場合を例に挙げて説明した。しかしながら、本数を計測する対象となる長尺物の端面の形状は、撮像を行う端面側において、相互に隣接する長尺物の間の少なくとも一部に隙間が形成されるように段積みされる長尺物であればよい。本数を計測する対象となる長尺物の端面の形状は、例えば、楕円形、多角形等であってもよい。
また、第1の色空間要素、第2の色空間要素は、前述したものに限定されない。長尺物の端面の色に応じて、例えば、CIE 1976 L
*u
*v
*色空間の要素や、CIE XYZ色空間の要素を第1の色空間要素、第2の色空間要素として採用することができる。
【0058】
また、本実施形態のように、グレースケール2値化画像において、画素値が「1」である領域に囲まれている「画素値が「0」である領域」の画素値を「1」に変更して隙間補完後2値化画像を作成すれば、第2のグレースケール画像から抽出する領域を、キャップ50の領域に、より確実に一致させることができるので好ましい。しかしながら、必ずしも隙間補完後2値化画像を作成する必要はない。例えば、端面の色のムラが小さい場合には、グレースケール2値化画像600における、画素値が「1」である一纏まりの領域は明瞭であるので、このような場合には、当該一纏まりの領域を、第2のグレースケール画像から抽出する領域とすることができる。
【0059】
また、本実施形態では、第1のグレースケール画像と第2のグレースケール画像とを作成し、第1のグレースケール画像からグレースケール2値化画像を、グレースケール2値化画像から隙間補完後2値化画像を、それぞれ作成し、隙間補完後2値化画像に基づいて定められる領域を第2のグレースケール画像から抽出して計数対象領域抽出画像を作成した。しかしながら、少なくとも、第2のグレースケール画像、隙間補完後2値化画像、及び計数対象領域抽出画像については必ずしも作成する必要はない。鋼管20の端面(キャップ50)の領域の色(端面色情報により特定される色)である場合と、鋼管20(キャップ50)の背景の色である場合とで(可及的に大きく)異なる値をとり、鋼管20の端面(キャップ50)の領域の色であるときの値と、それらの間の隙間の領域の色であるときの値との差が大きく、且つ、色のムラによって値が大きく変化しない要素として1つの要素を選択できる場合には、第1の色空間要素と第2の色空間要素とを同じ要素にすることができる。すなわち、第1の色空間要素と第2の色空間要素とが同じ要素になる場合には、グレースケール2値化画像した段階で、計数対象領域2値化画像と同等の2値化画像を得ることができる。よって、このような場合には、第2のグレースケール画像、隙間補完後2値化画像、及び計数対象領域抽出画像は不要となる。また、このことから明らかなように、本実施形態のようにして第1のグレースケール画像と第2のグレースケール画像を生成する場合には、第1の色空間要素と第2の色空間要素とが異なる要素であるのことが好ましい。
【0060】
尚、以上説明した本発明の実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、前記プログラムを記録したコンピュータ読み取り可能な記録媒体及び前記プログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、以上説明した本発明の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。