"画像処理装置用プログラミング言語ライブラリを用いたソフトウェアの開発を支援する、画像処理ソフトウェア開発装置上で実行される画像処理ソフトウェア開発方法であって、前記画像処理ソフトウェア開発装置は、記憶装置と、モデル図編集部を構成するための制御装置とを有しており、前記記憶装置には、ソフトウェアが記述されるモデル図の構成要素である4種の下位部品図として、入出力データメモリ管理部品図、入力データ値設定部品図、ライブラリ実行部品図、および、出力データ値取得部品図がそれぞれ部品図定義部に記憶されており、前記下位部品図は、前記プログラミング言語ライブラリの関数と、その関数を実行するときの入出力データを指定するための接続端子とを有しており、前記接続端子を介して接続される4種の前記下位部品図をグループ化した上位部品図も、前記記憶装置に記憶されており、前記モデル図編集部は、モデル図への前記下位部品図または前記上位部品図の追加操作を受け付けると、受け付けた前記下位部品図または前記上位部品図をモデル図へと追加するとともに、複数の前記下位部品図の前記接続端子についての接続操作を受け付けると、受け付けた前記接続端子間を有向リンクで接続することで、モデル図を作成させることを特徴とする画像処理ソフトウェア開発方法。前記画像処理ソフトウェア開発装置の制御装置は、さらに、モデル実行部を構成し、前記モデル実行部は、前記作成されたモデル図内の部品図接続関係から各部品図の処理順序を特定し、処理順序に従って作成されたモデル図内の前記下位部品図を1つずつ選択し、選択される前記下位部品図が前記入出力データメモリ管理部品図であるときには、前記プログラミング言語ライブラリのライブラリ関数に入出力するデータ構造用のメモリを確保および解放し、選択される前記下位部品図が前記入力データ値設定部品図であるときには、前記確保されたメモリに対して、前記ライブラリ関数に入出力するデータ構造の値を設定し、選択される前記下位部品図が前記ライブラリ実行部品図であるときには、前記ライブラリ関数に入出力するデータ構造の値を参照して、前記プログラミング言語ライブラリを呼び出し、選択される前記下位部品図が前記出力データ値取得部品図であるときには、前記プログラミング言語ライブラリを呼び出した実行結果が格納されているデータ構造から、実行結果を読み取ることを特徴とする請求の範囲第1項に記載の画像処理ソフトウェア開発方法。前記画像処理ソフトウェア開発装置の制御装置は、さらに、コード生成部を構成し、前記コード生成部は、前記作成されたモデル図内の部品図接続関係から各部品図の処理順序を特定し、処理順序に従って作成されたモデル図内の前記下位部品図を1つずつ選択し、選択される前記下位部品図が前記入出力データメモリ管理部品図であるときには、前記プログラミング言語ライブラリのライブラリ関数に入出力するデータ構造用のメモリを前記画像処理装置内のメモリから確保および解放するための前記プログラミング言語ソースコードを出力し、選択される前記下位部品図が前記入力データ値設定部品図であるときには、前記画像処理装置内で確保されたメモリに対して、前記ライブラリ関数に入出力するデータ構造の値を設定するための前記プログラミング言語ソースコードを出力し、選択される前記下位部品図が前記ライブラリ実行部品図であるときには、前記ライブラリ関数に入出力するデータ構造の値を参照して、前記画像処理装置内で前記プログラミング言語ライブラリを呼び出すための前記プログラミング言語ソースコードを出力し、選択される前記下位部品図が前記出力データ値取得部品図であるときには、前記画像処理装置内で前記プログラミング言語ライブラリを呼び出した実行結果が格納されているデータ構造から、実行結果を読み取るための前記プログラミング言語ソースコードを出力することを特徴とする請求の範囲第1項に記載の画像処理ソフトウェア開発方法。前記モデル図編集部は、モデル図内の第1前記上位部品図内の前記入出力データメモリ管理部品図の前記接続端子から、モデル図内の第2前記上位部品図内の前記ライブラリ実行部品図の前記接続端子への接続操作を受け付けると、受け付けた接続操作に従って、前記入出力データメモリ管理部品図の前記接続端子から前記ライブラリ実行部品図の前記接続端子への有向リンクをモデル図に追加することを特徴とする請求の範囲第1項ないし第3項のいずれか1項に記載の画像処理ソフトウェア開発方法。前記ライブラリ関数に入出力するデータ構造が画像データである場合、その接続端子には画像データの管理情報を入出力するための前記下位部品図の前記接続端子を接続するとともに、画像データ内に含まれる画素データは画像処理ライブラリ内部で管理することを特徴とする請求の範囲第1項ないし第3項のいずれか1項に記載の画像処理ソフトウェア開発方法。画像処理装置用プログラミング言語ライブラリを用いたソフトウェアの開発を支援する、画像処理ソフトウェア開発装置であって、前記画像処理ソフトウェア開発装置は、記憶装置と、モデル図編集部を構成するための制御装置とを有しており、前記記憶装置には、ソフトウェアが記述されるモデル図の構成要素である4種の下位部品図として、入出力データメモリ管理部品図、入力データ値設定部品図、ライブラリ実行部品図、および、出力データ値取得部品図がそれぞれ部品図定義部に記憶されており、前記下位部品図は、前記プログラミング言語ライブラリの関数と、その関数を実行するときの入出力データを指定するための接続端子とを有しており、前記接続端子を介して接続される4種の前記下位部品図をグループ化した上位部品図も、前記記憶装置に記憶されており、前記モデル図編集部は、モデル図への前記下位部品図または前記上位部品図の追加操作を受け付けると、受け付けた前記下位部品図または前記上位部品図をモデル図へと追加するとともに、複数の前記下位部品図の前記接続端子についての接続操作を受け付けると、受け付けた前記接続端子間を有向リンクで接続することで、モデル図を作成させることを特徴とする画像処理ソフトウェア開発装置。前記画像処理ソフトウェア開発装置の制御装置は、さらに、モデル実行部を構成し、前記モデル実行部は、前記作成されたモデル図内の部品図接続関係から各部品図の処理順序を特定し、処理順序に従って作成されたモデル図内の前記下位部品図を1つずつ選択し、選択される前記下位部品図が前記入出力データメモリ管理部品図であるときには、前記プログラミング言語ライブラリのライブラリ関数に入出力するデータ構造用のメモリを確保および解放し、選択される前記下位部品図が前記入力データ値設定部品図であるときには、前記確保されたメモリに対して、前記ライブラリ関数に入出力するデータ構造の値を設定し、選択される前記下位部品図が前記ライブラリ実行部品図であるときには、前記ライブラリ関数に入出力するデータ構造の値を参照して、前記プログラミング言語ライブラリを呼び出し、選択される前記下位部品図が前記出力データ値取得部品図であるときには、前記プログラミング言語ライブラリを呼び出した実行結果が格納されているデータ構造から、実行結果を読み取ることを特徴とする請求の範囲第6項に記載の画像処理ソフトウェア開発装置。前記画像処理ソフトウェア開発装置の制御装置は、さらに、コード生成部を構成し、前記コード生成部は、前記作成されたモデル図内の部品図接続関係から各部品図の処理順序を特定し、処理順序に従って作成されたモデル図内の前記下位部品図を1つずつ選択し、選択される前記下位部品図が前記入出力データメモリ管理部品図であるときには、前記プログラミング言語ライブラリのライブラリ関数に入出力するデータ構造用のメモリを前記画像処理装置内のメモリから確保および解放するための前記プログラミング言語ソースコードを出力し、選択される前記下位部品図が前記入力データ値設定部品図であるときには、前記画像処理装置内で確保されたメモリに対して、前記ライブラリ関数に入出力するデータ構造の値を設定するための前記プログラミング言語ソースコードを出力し、選択される前記下位部品図が前記ライブラリ実行部品図であるときには、前記ライブラリ関数に入出力するデータ構造の値を参照して、前記画像処理装置内で前記プログラミング言語ライブラリを呼び出すための前記プログラミング言語ソースコードを出力し、選択される前記下位部品図が前記出力データ値取得部品図であるときには、前記画像処理装置内で前記プログラミング言語ライブラリを呼び出した実行結果が格納されているデータ構造から、実行結果を読み取るための前記プログラミング言語ソースコードを出力することを特徴とする請求の範囲第6項に記載の画像処理ソフトウェア開発装置。請求の範囲第1項ないし第5項のいずれか1項に記載の画像処理ソフトウェア開発方法を、コンピュータである前記画像処理ソフトウェア開発装置に実行させるための画像処理ソフトウェア開発プログラム。しかしながら、特許文献1に記載された技術では、組込LSI用のプログラミング言語ライブラリと連動した認識アルゴリズムの開発ができないまたは、PCなど開発環境上でのシミュレーションは可能でも、組込LSI用のプログラミング言語ライブラリを呼び出すソースコードの生成ができないという問題があった。また、モデルベース開発では、プログラミング言語を用いた開発よりも開発効率を高めるために、あらかじめ定義されるソフトウェア部品の抽象度を、プログラミング言語用関数よりも高く設定することが多く、ソフトウェア部品の実行に要する組込機器の計算機リソース計算量およびメモリ使用量を減らすことが難しかった。そこで、本発明は、画像処理を実行する組込LSI用のプログラミング言語ライブラリを統合したモデルベース開発、より具体的には、開発環境上でのプログラミング言語を用いない部品図接続型認識アルゴリズム開発、および、組込機器の計算機リソース使用量を減らしたソースコード生成が可能なモデルベース開発環境を提供することを主な目的とする。前記課題を解決するために、本発明は、画像処理装置用プログラミング言語ライブラリを用いたソフトウェアの開発を支援する、画像処理ソフトウェア開発装置上で実行される画像処理ソフトウェア開発方法であって、前記画像処理ソフトウェア開発装置が、記憶装置と、モデル図編集部を構成するための制御装置とを有しており、前記記憶装置には、ソフトウェアが記述されるモデル図の構成要素である4種の下位部品図として、入出力データメモリ管理部品図、入力データ値設定部品図、ライブラリ実行部品図、および、出力データ値取得部品図がそれぞれ部品図定義部に記憶されており、前記下位部品図が、前記プログラミング言語ライブラリの関数と、その関数を実行するときの入出力データを指定するための接続端子とを有しており、前記接続端子を介して接続される4種の前記下位部品図をグループ化した上位部品図も、前記記憶装置に記憶されており、前記モデル図編集部が、モデル図への前記下位部品図または前記上位部品図の追加操作を受け付けると、受け付けた前記下位部品図または前記上位部品図をモデル図へと追加するとともに、複数の前記下位部品図の前記接続端子についての接続操作を受け付けると、受け付けた前記接続端子間を有向リンクで接続することで、モデル図を作成させることを特徴とする。その他の手段は、後記する。本発明によれば、画像処理を実行する組込LSI用のプログラミング言語ライブラリを統合したモデルベース開発、より具体的には、開発環境上でのプログラミング言語を用いない部品図接続型認識アルゴリズム開発、および、組込機器の計算機リソース使用量を減らしたソースコード生成が可能なモデルベース開発環境を提供することができる。以下、本発明の一実施形態を、各図面を参照して詳細に説明する。図1は、画像処理ソフトウェア開発システムを示す構成図である。画像処理ソフトウェア開発システムは、画像処理ソフトウェア開発装置1と、組込機器70とにより構成される。画像処理ソフトウェア開発装置1は、制御装置であるCPUとメモリとハードディスク記憶手段とネットワークインタフェースを有するコンピュータとして構成され、このコンピュータは、CPUが、メモリ上に読み込んだプログラムを実行することにより、各処理部を動作させる。組込機器70は、画像処理などを実行する組込LSIが搭載されている計算機であり、画像処理ソフトウェア開発装置1よりも、計算機リソースCPUの処理能力、メモリの記憶容量などが少ないことが多い。画像処理ソフトウェア開発装置1は、部品図定義部10、モデル図編集部20、モデル実行部30、コード生成部40、プログラミング言語ライブラリ50、および、プログラミング言語ソースコード60により構成される。部品図定義部10には、プログラミング言語ライブラリ50の各関数およびデータ構造と対応する部品図があらかじめ決まった構造で定義されている。この構造については後記する。以下、プログラミング言語ライブラリ50の関数を、ライブラリ関数と略す。モデル図編集部20は、部品図定義部10に定義されている各部品図を用いて、画像処理フローを記述する。この手順については後記する。モデル実行部30は、モデル図編集部20を用いて作成されたモデル図をもとに、画像処理フローを実行する詳細は、図6参照。具体的には、モデル実行部30は、画像処理ソフトウェア開発装置1上で、組込機器70を模擬動作する以下、シミュレーションとも呼ぶ。模擬動作の一例として、組込機器70を画像処理ソフトウェア開発装置1内の仮想計算機として構築し、その仮想計算機のハードウェアリソースとOS上のプロセスとを模擬した上で、画像処理アルゴリズムを模擬動作する形態がある。模擬動作の別の一例として、画像処理ソフトウェア開発装置1のハードウェアリソースとOS上で、画像処理アルゴリズムを模擬動作する形態としてもよい。コード生成部40は、モデル図編集部20を用いて作成されたモデル図をもとに、プログラミング言語ソースコード60を生成する詳細は、図7参照。そして、生成されたプログラミング言語ソースコード60は、組込機器70用のコンパイラでコンパイルリンクすることにより、バイナリファイルが作成される。組込機器70は、作成されたバイナリファイルを受信し図1の破線矢印、そのバイナリファイルを組込LSIを用いて動作させる。プログラミング言語ライブラリ50は、組込機器70に搭載されている組込LSIで動作するドライバソフトウェアを実現するためのライブラリである。本実施形態では、プログラミング言語ライブラリ50の一例として、画像処理特に、画像処理のうちのエッジ角度抽出処理などの画像認識処理を実行するためのC言語で記述されるライブラリを例示する。一方、プログラミング言語ライブラリであればさまざまな種類に適用可能である。例えば、画像ではなく音声認識ライブラリなどに適用可能で、かつ、ライブラリを利用するプログラミング言語もC言語に限定されるものではない。プログラミング言語ソースコード60は、コード生成部40により生成されるもので、プログラミング言語ライブラリ50を呼び出すアプリケーションソースコードである。次に、画像処理ソフトウェア開発装置1の処理概要について、説明する。まず、ユーザ110は、部品図定義部10にあらかじめ定義された部品図を、モデル図編集部20のモデル図画面上に配置し、それら部品図間の入出力端子を接続することで画像処理フローを示すモデル図を記述する。次に、ユーザ110は、モデル実行部30に対しモデル図の実行を指示すると、モデル実行部30は、モデル図編集部20で作成されたモデル図に記述されている画像処理フローの先頭から順番に、処理フローを実行する。この際、画像処理フローを構成する各部品図に対応づけられるプログラミング言語ライブラリ50内の機能を順次呼び出すことにより、画像処理アルゴリズムのシミュレーションを行う。次に、ユーザ110は、コード生成部40に対しコード生成を指示すると、コード生成部40は、モデル図編集部20で作成されたモデル図に記述されている画像処理フローを元に、プログラミング言語ソースコード60を出力する。図2は、部品図定義部10に定義される部品図を示す説明図である。図2aは、図2bの下位部品図と対応するプログラミング言語ライブラリ50の関数や構造体を示す。まず、ライブラリ関数エッジ角度抽出関数ExtractEdgeAngleは、引数で指定された画像IDIMGIDに該当する画像内の各画素に対して、画素x、yごとのエッジ強度および角度rho、thetaを出力する。また、エッジ角度抽出制御構造体EDGECTL型は、エッジ角度抽出処理の制御に必要な制御パラメータで、エッジ強度下限閾値と、最大エッジ数をもつ。この制御パラメータに基づき、指定された閾値よりも強いエッジ強度の画素に対するエッジ強度および角度を計算し、エッジ角度抽出結果構造体EDGETBL配列に出力する。この際、エッジ角度抽出結果構造体配列は、あらかじめ十分な個数例えば、画面内の全画素数分確保されているものとし、その個数はエッジ角度抽出制御構造体メンバであるmaxEdgeに設定する必要がある。なお、エッジ角度抽出関数の戻り値は、実際に抽出されたエッジ数とする。図2bは、ライブラリ関数の1つであるエッジ角度抽出関数と、そのライブラリ関数に対応する部品図群を示す。部品図は、ライブラリ関数1個当たり4種の下位部品図と、それらをまとめたグループ化した、または、階層化したともいえる上位部品図とで構成される。各下位部品図の外観については、部品図内部のラベル文字列のうち、上部の文字列例えば、ExtractEdgeAngleが下位部品図の名称、左側の文字列例えば、IMGIDが入力端子、右側の文字列例えば、edgeCountが出力端子、左右中央の文字列例えば、pEdgeTblが入出力共用端子をそれぞれ表している。よって、図2では、下位部品図を利用順に左から右へ配置し、各入出力端子の型が整合するように接続することにより、上位部品図270内の処理フローが構成される。この際、下位部品図内の入出力端子のうち、下線を引いてある端子例えば、GetEdgeTbl250内のEDGETBLが、上位部品図の入出力端子となる。下位部品図は、以下に示すように、入出力データメモリ管理部品図、入力データ値設定部品図、ライブラリ実行部品図、および、出力データ値取得部品図の4種に分類される。a入出力データメモリ管理部品図は、ライブラリ関数に入出力するデータ構造それぞれに対してデータ構造メモリを確保解放するための下位部品図であり、例えば、EDGECTL構造体のメモリ管理確保、解放を行うAllocEdgeCtl220や、EDGETBL構造体のメモリ管理を行うAllocEdgeTbl230である。b入力データ値設定部品図は、確保したデータ構造に対して値を設定するための下位部品図であり、例えば、エッジ角度抽出関数の制御構造体であるEDGECTL構造体に対して値を設定するSetEdgeCtl240である。cライブラリ実行部品図は、ライブラリ関数を呼び出すための下位部品図であり、例えば、エッジ角度抽出関数に対応するExtractEdgeAngle210である。ExtractEdgeAngle210内のedgeCountがエッジ角度抽出関数の戻り値に該当する。なお、ライブラリ実行部品図は、ライブラリ関数1個あたりひとつ定義される。d出力データ値取得部品図は、ライブラリ関数の実行結果が格納されているデータ構造から値を取り出すための下位部品図であり、例えば、エッジ角度抽出処理結果が格納されているEDGETBL構造体から値を取得するGetEdgeTbl250や、EDGECTL構造体から値を取得するGetEdgeCtl260である。データメモリに関係する下位部品図220~260は基本的にはそれぞれデータ型1個当たり、a入出力データメモリ管理部品図、b入力データ値設定部品図、d出力データ値取得部品図の3種一組ずつ定義される。例えば、EDGECTL構造体については下位部品図220、240、260が組をなす。ただし、例外として、データ構造が認識結果出力専用であって値の設定が不要な場合は、入力データ値設定部品図は定義しなくても構わない。例えば、EDGETBL構造はエッジ角度抽出関数の出力を受け取る用途にしか使わないつまり、ユーザ110が値を設定することはないため、入力データ値設定部品図は定義しなくても構わない。上位部品図270は、下位部品図210~260を利用順にあらかじめ接続してひとまとめにグループ化したものである。なお、本実施形態では、上位部品図の命名規則を、下位部品図のライブラリ実行部品図名pkgとして説明する。pkgは、パッケージの略である。なお、本実施形態ではライブラリ関数とそのデータ構造に関係する部品図について説明するが、下位部品図として条件分岐、繰り返しなどの処理フロー制御部品図を追加してもよい。これにより、より複雑なアルゴリズムを記述することが可能になる。次に、モデル図編集部20に配置される処理フロー図について、図3~図5を用いて説明する。図3は、部品図定義部10内に定義された上位部品図および下位部品図の別の例として、エッジ角度量子化関数の例を示す説明図である。図3aは、図3bの下位部品図と対応するライブラリ関数であるエッジ角度量子化関数ResampleEdgeAngleを示す。なお、エッジ角度量子化とは、エッジ角度抽出処理によって1度刻み360度の分解能でEDGETBL構造体に出力されたエッジ角度情報を、指定された角度分解能例えば8方向符号であれば360度を45度刻み8方向の分解能に変換する処理のことである。この処理は、エッジ角度情報に基づく画像識別特徴量の抽出などにおいて利用される。エッジ角度量子化関数ResampleEdgeAngleは、前段で処理されたエッジ角度抽出関数から出力されるエッジ角度抽出結果構造体EDGETBL配列を第1引数pInEdgeTblから入力し、さらに制御用の入力情報として、第3引数edgeCountにはEDGETBL構造体配列の数を、第4引数resolutionには量子化後の分解能をそれぞれ入力し、エッジ角度量子化処理を行い、第2引数から出力用として受け取った別のエッジ角度抽出結果構造体EDGETBL配列に処理結果を入れて出力する。なお、関数の戻り値は量子化後のエッジ角度量子化テーブル数である。図3bでは、エッジ角度量子化関数に対応するResampleEdgeAngle310がライブラリ実行部品図に該当し、その他の入出力データ型は図2と同じであるため、下位部品図230、250は部品図定義部10に定義済みの部品図を流用することができる。さらに、上位部品図320は、下位部品図230、310、250を利用順にあらかじめ接続してひとまとめにグループ化したものである。図4は、図2,図3で説明した各上位部品図を、モデル図編集部20のモデル図画面上に配置および接続した例を示す説明図である。本実施形態においてユーザ110がアルゴリズムを記述する方法は、図4aの部品図定義部10に定義されている部品図群から画像処理アルゴリズム処理フローで用いる部品図を選択し、図4bのモデル図編集部20上に配置し、各部品図の接続端子を利用順番後記する図6,図7での処理順番に相当かつ型整合性が取れるように接続する、という手順になる。まず、ユーザ110は、部品図定義部10に定義済みの画像メモリ確保AssignImg410を選択して例えば、マウスのドラッグ操作、モデル図編集部20上に下位部品図440として配置する例えば、マウスのドロップ操作。つまり、部品図定義部10に定義されている部品図はあくまで部品の定義情報であって、モデル図編集部20上に配置されて初めて部品図の実体として機能する。続いて、ユーザ110は、同様に残りの部品図も配置する。つまり、確保した画像メモリに画像を取得し部品図420から部品図445、最大取得エッジ数maxEdge1024、エッジ強度閾値minThr30という制御パラメータ定数値を設定し部品図430から部品図450、455、それらを入力してエッジ角度抽出を行うExtractEdgeAnglePkg部品図270から部品図460。さらに、ユーザ110は、角度分解能resolution8という制御パラメータ定数値を設定し部品図430から部品図465、エッジ角度抽出結果を量子化するResampleEdgeAngle部品図320から部品図470という部品図を配置する。さらに、各部品図の入出力端子間を接続し、画像処理フローを構築する。このように、部品図定義部10内にあらかじめ下位部品図の接続関係をまとめた形で上位部品図を定義してあるため、ユーザ110は、モデル図編集部20上での上位部品図460、470には、下位部品図群によって構成される処理フロー全体の入力情報、および、出力情報だけを接続すればよく、接続すべき部品図を少なくすることができる。よって、アルゴリズム試作時など、数多くのアルゴリズムを迅速に構築し、比較評価をする際などに効果的である。図5は、図4と同じ処理フローを、上位部品図と下位部品図を併用して構築した例を示す説明図である。図5の例では、まず、ユーザ110は、図4と上位部品図を用いて同様の処理フローを記述する。次に、ユーザ110は、上位部品図の中に含まれる下位部品図を表示状態にする。なお、表示状態の切り替え方法は公知の方法で構わない。例えば、部品図編集用のメニュー等から下位部品図の表示/非表示を切り替えてもよいし、上位部品図をダブルクリックすることによって別画面を出すなどしてもよい。ユーザ110は、下位部品図を表示状態にした後、下位部品図同士の接続関係を編集することができる。従って、ユーザ110は、複数の上位部品図に含まれる下位部品図の間で、処理が不要または重複している部品図を消しもしくは、接続関係を修正して処理をスキップさせ、再接続することができる。そのため、モデル図編集部20は、モデル図内の第1上位部品図内の入出力データメモリ管理部品図の接続端子から、モデル図内の第2上位部品図内のライブラリ実行部品図の接続端子への接続操作を受け付けると、受け付けた接続操作に従って、入出力データメモリ管理部品図の接続端子からライブラリ実行部品図の接続端子への有向リンクをモデル図に追加する。例えば、図2内上位部品図270の中に含まれる下位部品図230AllocEdgeTblと、図3内上位部品図320の中に含まれる下位部品図230AllocEdgeTblとが重複しており、図4のように上位部品図460、470同士を接続しただけの状態では、EDGETBL構造体メモリを二重に確保していることになる。従って、図5の例では、ユーザ110は、上位部品図460内の下位部品図230で確保したEDGETBL構造体メモリを、後段の上位部品図470内でそのまま利用するように接続関係を書き換えている。さらに、上位部品図460内処理フローの最後段に位置する、EDGECTL構造体値取得部品図260GetEdgeCtlと、EDGETBL構造体値取得部品図250GetEdgeTblは不要な処理であるため、ユーザ110は、エッジ角度抽出関数実行部品図210ExtractEdgeAngleの出力結果をそのままエッジ角度量子化関数実行部品図310ResampleEdgeAngleに入力するように接続関係を書き換えている。このように、ユーザ110は、モデル図編集部20を介して、上位部品図の内部に定義されている下位部品図に対する表示および編集ができるため、シミュレーションを通じて確定したアルゴリズムが動作する組込機器70の計算機リソース使用効率を改善する具体的には組込機器70のメモリ確保量の削減と、組込機器70のメモリ確保処理に伴う処理時間の削減ことができる。図6は、モデル実行部30の処理を示すフローチャートである。モデル実行部30は、基本的に、モデル図編集部20内に構築された処理フロー内の各部品図を先頭から終端に向かって順番に処理していくS610、S615、S650、S655。この際、まず、上位部品図群を接続して構成される上位階層の処理フロー図4の例に相当をチェックして、その先頭から終端に向かって部品図の処理順番を決定する。次に、各上位部品図の内部に定義されている、下位部品図群を接続して構成される下位階層の処理フロー図5の例に相当をチェックして、その先頭から終端に向かって部品図の処理順番を決定する。以下、具体的な例として、図4の処理フローの例で説明する。まず、上位部品図の処理順番を決定する。処理フローを先頭から順にたどっていくと、図4の例では、第1部品図集合<部品図440→部品図445→部品図450→部品図455→部品図460→部品図465→部品図470>の順になる。なお、部品図450、455などの並列関係にある部品図の処理順番は、その後段の処理である部品図465よりも前に順序付けされるが、部品図450と部品図455との間の順序関係は任意である。例えば、部品図をモデル図編集部20に配置した順番で決定しても構わない。次に、下位部品図の処理順番を決定する。まず上位部品図465については、図2の処理フローより、第2部品図集合<部品図220→部品図230→部品図240→部品図210→部品図250→部品図260>の順になる並列関係にある部品図の処理順番については同様である。次に、上位部品図470については、図3の処理フローより、第3部品図集合<部品図230→部品図310→部品図250>の順になる並列関係にある部品図の処理順番については同様である。以上をまとめると、各部品図の処理順番は、以下のようになる。ここで、まとめるとは、第1部品図集合内の上位部品図465,470を、それぞれ前記した下位部品図の集合第2部品図集合、第3部品図集合に置き換えることである。<部品図440→部品図445→部品図450→部品図455→部品図460→部品図220→部品図230→部品図240→部品図210→部品図250→部品図260→部品図230→部品図310→部品図250>になる。次に、処理順番に従って各部品図を処理していく。各部品図の処理では、まず部品図の種別をチェックしS620、部品図種別ごとに処理を分岐する。部品図種別が入出力データメモリ管理部品図の場合は、実行タイミングが処理フローの開始時点か終了時点かによって処理を分岐する。開始時点の場合はデータ構造のメモリを確保しS625、終了時点の場合はデータ構造のメモリを解放するS630。部品図種別が入力データ値設定部品図の場合は、該当するデータ構造に指定された値を設定するS635。なお、データ構造と設定値は部品図の入力端子から指定されたものを使用する。部品図種別がライブラリ実行部品図の場合は、該当するライブラリ関数を呼出し、実行結果を受け取るS640。なお、ライブラリ関数に引き渡す引数入力用引数と出力用引数は部品図の入力端子から指定されたものを使用し、ライブラリ関数の実行結果を保持するデータ構造と戻り値は出力端子から出力する。部品図種別が出力データ値取得部品図の場合は、該当するデータ構造から値を取得するS645。なお、取得元データ構造、取得するデータ要素、取得結果の格納先データ構造は部品図の入力端子から指定されたものを使用し、格納先データ構造を出力端子から出力する。なお、本実施形態では入出力データメモリ管理部品図はガーベジコレクタ使用済みメモリの回収機能をシミュレートする。ただし、これは本実施形態の必須要件ではない。例えば、ガーベジコレクタ機能がない場合は、入出力データメモリ管理部品図を入出力データメモリ確保部品図入出力データメモリ解放部品図の2種類に分けた上で、入出力データメモリ解放部品図をモデル図編集部20内に構築された処理フローの適切な個所一般的には、処理フロー終端に接続すればよい。また、本実施形態ではライブラリ関数とそのデータ構造に関係する部品図について説明するが、下位部品図として条件分岐、繰り返しなどの処理フロー制御部品図を追加した場合、S620の処理分岐先が部品図種別ごとに増える。分岐先での部品図実行は公知の方法で構わない。例えば、部品図種別が処理分岐部品図であれば条件判定と判定結果に応じた処理を行う。図7は、コード生成部40の処理を示すフローチャートである。コード生成部40は、基本的に、モデル図編集部20内に構築された処理フロー内の各部品図を先頭から終端に向かって順番に処理していくS710、S715、S750、S755。この際、まず、上位部品図群を接続して構成される上位階層の処理フロー図4の例に相当をチェックして、その先頭から終端に向かって部品図の処理順番を決定する。次に、各上位部品図の内部に定義されている、下位部品図群を接続して構成される下位階層の処理フロー図5の例に相当をチェックして、その先頭から終端に向かって部品図の処理順番を決定する。その後、処理順番に従って各部品図を処理していく。各部品図の処理では、まず部品図の種別をチェックしS720、部品図種別ごとに処理を分岐する。部品図種別が入出力データメモリ管理部品図の場合は、実行タイミングが処理フローの開始時点か終了時点かによって処理を分岐する。開始時点の場合はデータ構造のメモリを確保するソースコード例えば、C言語であればmalloc文を生成しS725、終了時点の場合はデータ構造のメモリを解放するソースコード例えば、C言語であればfree文を生成するS730。部品図種別が入力データ値設定部品図の場合は、該当するデータ構造に指定された値を設定するソースコード例えば、C言語であれば構造体メンバ変数への代入文を生成するS735。なお、データ構造と設定値は部品図の入力端子から指定されたものを使用する。部品図種別がライブラリ実行部品図の場合は、該当するライブラリ関数を呼出し、実行結果を受け取るソースコードを生成するS740。なお、ライブラリ関数に引き渡す引数入力用引数と出力用引数は部品図の入力端子から指定されたものを使用し、ライブラリ関数の実行結果を保持するデータ構造と戻り値は出力端子から出力する。部品図種別が出力データ値取得部品図の場合は、該当するデータ構造から値を取得するソースコード例えば、取得元データ構造体とは別の変数への代入を生成するS745。ただし、出力データ値取得部品図の出力端子が未接続の場合は、取得した値を格納する先がないものとして、その端子に関するソースコードは生成しない。なお、取得元データ構造、取得するデータ要素、取得結果の格納先データ構造は部品図の入力端子から指定されたものを使用し、格納先データ構造を出力端子から出力する。図8は、プログラミング言語ソースコード60の一例として、図4の処理フローに対してコード生成した結果を示す説明図である。sizeX640、sizeY480については、モデルの外部からパラメータを与えた例として記載している。なお、本実施形態では、変数名の決定方法として、各部品図の入出力端子名を基準に設定する方法を用いているが、他の方法でも構わない。例えば、部品図間の接続線に名前を付け、その名前を変数名にしてもよい。また、本実施形態ではライブラリ関数とそのデータ構造に関係する部品図について説明するが、下位部品図として条件分岐、繰り返しなどの処理フロー制御部品図を追加した場合、S720の処理分岐先が部品図ごとに増える。分岐先でのコード生成処理は公知の方法で構わない。例えば、部品図種別が処理分岐部品図であれば条件判定文と判定結果に応じた処理のコード生成を行うC言語であればif~else文を生成する。以上説明した本実施形態は、ソフトウェア処理を、プログラミング言語ではなく部品図接続によって記述するモデルベース開発技術に関するものであり、特に、画像センサによる認識ソフトウェアのモデルベース開発技術に関するものである。本実施形態の画像処理ソフトウェア開発装置1は、プログラミング言語用の画像処理ライブラリ機能と、前記機能への入出力データ構造に対し、入出力データメモリ管理部品図、入力データ値設定部品図、ライブラリ実行部品図、出力データ値取得部品図、の4種の部品図を有し、さらに、前記4種の部品図を下位部品図として一組にまとめた上位部品図を有し、下位部品図と上位部品図を組み合わせてソフトウェアを記述することを特徴とする。本実施形態の画像処理ソフトウェア開発装置1は、前記部品図として、画像処理ライブラリ機能の入出力引数と対応する部品図接続端子を有し、前記接続端子は、画像処理ライブラリ機能の入出力変数名もしくはデータ型名を接続端子名とする。さらに、画像処理ソフトウェア開発装置1を用いて記述されたソフトウェア処理フロー図から、前記処理フロー図を構成する部品図と対応する画像処理ライブラリ機能の呼出しソースコードを、プログラミング言語で出力する機能を有する。本実施形態の画像処理ソフトウェア開発装置1は、ある前記上位部品図の下位階層に含まれる入出力データメモリ管理部品図によって確保されたメモリ領域を、別の上位部品図の下位階層に含まれるライブラリ実行部品図に接続可能な構造を有する。本実施形態の画像処理ソフトウェア開発装置1は、前記入出力データ構造が画像データである場合、前記部品図接続端子には画像データの管理情報を入出力し、画像データ内に含まれる画素データはプログラミング言語ライブラリ50の内部で管理する。つまり、ライブラリ関数に入出力するデータ構造が画像データである場合、その接続端子には画像データの管理情報を入出力するための下位部品図の接続端子を接続するとともに、画像データ内に含まれる画素データは画像処理ライブラリ内部で管理する。本実施形態では、データのメモリ管理方法を、計算機の記憶装置に対する領域割当処理および解放処理によって実装し、データの入出力方法を、計算機の記憶装置に対する入出力処理によって実装し、データの処理を計算機の演算処理によって実装した、画像処理ソフトウェア開発プログラム、および、該コンピュータプログラムを計算機上で実行するソフトウェア開発装置、によって構成される。本実施形態により、画像処理ソフトウェア開発者は、プログラミング言語によるプログラミングを行わず、部品図接続によって画像処理アルゴリズムを設計、実装することができる。さらに、設計、実装されたモデル図から自動コード生成機能を用いて、組込LSI用のプログラミング言語ライブラリ50を呼び出すコードを生成することができる。この際、上位部品図と下位部品図を組み合わせて用いることで、計算機リソース使用量を減らしたソースコードを生成することができる。アルゴリズム試作時点では上位部品図接続によるモデルベース開発を行うことにより、プログラミング言語よりも抽象度の高いつまり、実装すべき内容が少ない部品図接続によりアルゴリズム開発することができる。また、アルゴリズム確定後は下位部品図の接続関係を改善することで、組込機器70の処理効率およびメモリ使用効率の高い実装を行うことができる。さらに、自動コード生成の際に、各データ構造に対するメモリ確保および解放、値の代入、値の取得を行うコードに加え、組込LSI用にあらかじめ規定されたライブラリ関数の呼出しコードを生成することができ、プログラミング言語によるプログラミングを行わずに画像処理ソフトウェアの開発を行うことができる。つまり、プログラミング言語ライブラリ50を統合したモデルベース開発を実現することができる。なお、本実施形態では、本実施形態による処理を実行する計算機環境において、本実施形態における任意の一つの処理手段を二つ以上の処理手段に分割して実現しても、二つ以上の任意の処理手段を統合して一つの処理手段として実現してもよく、本実施形態の提供する機能を損なわない限りその実現形態を制約するものではない。"