(57)【要約】      （修正有）【課題】コンピューターのデーターベースに登録された文字や物体が、データーベースに登録された文字や物体とデーターベースに登録されていない文字や物体混じりの画像のどこに描かれているのかをサーチする方法を提供する。【解決手段】一定の誤差値を設けて、画像の色を分離して画像を作成し、色を分離した画像とデーターベースとを照合し、その差が、誤差値以内であった場合に、文字が読めた、または、絵が何かを判断できた、と自動的に判断してテキスト文字を表示するソフトウェアを作成する。【選択図】図５
2010176649.tif 000002
【特許請求の範囲】
【請求項１】
画像ファイルの画素数分のサイズでカラー型の一次元配列を作成し、このカラー型の一次元配列の事を、カラーＦ配列と仮称し、画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とし、次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませ、画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントし、カラーＦ配列に代入されているデーター数を確認し、データー数が０だった場合は、その画素のＲＧＢ形式の色データーをカラーＦ配列に代入し、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスを付加したファイル名のポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを作成し、そのファイルに１を記録し、カラーＦ配列に代入されているデーター数を確認してデーター数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査して新規の色であった場合は、カラーＦ配列の末尾に、その画素のＲＧＢ形式のカラーを代入し、そのカラーＦ配列のインデックスを取得し、取得したインデックスをファイル名に付けて、新規にポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを作成し、その作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、０を記録して、最後に１を記録し、この色以外のファイルを全て開き０を記録し、カラーＦ配列に同じＲＧＢ色があった場合は、同じ色のＲＧＢ形式の色が代入されたカラーＦ配列のインデックスを取得して、それを基に、既に作成してあるインデックスを付したファイルを探し出し、ファイル末尾に１を記録し、この色以外のファイルがある場合は、この色以外のファイルを全て開き０を記録するという工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチする事によって、コンピューターで使用している画像を色ごとに分離し、０と１で構成された画像用データーファイルを作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項２】
画像ファイルの画素数分のサイズでカラー型の一次元配列を作成し、このカラー型の一次元配列の事をカラーＦ配列と仮称し、画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とし、次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませ、画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントし、カラーＦ配列に代入されたデーター数を調べて、０だった場合は、ＲＧＢ形式の色をカラーＦ配列の最初にＲＧＢ形式のカラーを代入し、新規に作成するポジティブ用画像データーを書き込む為のテキスト形式のファイルとネガティブ画像用のデーターを書き込む為のテキスト形式のファイルのどちらか一方のファイルの拡張子を違うものにするか、または、ファイルの名称を違うものにする事で区別するとともに、新規に作成するポジティブ画像用のデーターを書き込む為のファイルには、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のファイルを作成し、この新規に作成したポジティブ画像用のデーターを書き込む為のテキスト形式のファイルに、１を記録し、ネガティブ用画像データーを書き込む為のファイルには、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のファイルを作成し、この新規に作成したネガティブ用画像データーを書き込む為のテキスト形式のファイルに、０を記録し、カラーＦ配列に代入されたデーター数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査し、新規の色であった場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入し、そのカラーＦ配列のインデックスを取得し、これをファイル名に付加し、この画素のネガティブ用画像データーを書き込む為のテキスト形式のファイルとポジティブ用画像データーを書き込む為のテキスト形式のファイルを区別する為に、違う名称か、または、違う拡張子を付けて作成し、このファイルをポジティブ画像用のデーターを書き込む為のファイルとし、この作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と２以上少ない場合に分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に、１を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、０を記録して、最後に１を記録し、ネガティブ用画像データーを書き込む為のファイルには、その色に相当するカラーＦ配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のファイルを作成し、その作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に０を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、１を記録して、最後に、０を記録し、既に、カラーＦ配列に同じＲＧＢ色があった場合は、このカラーＦ配列に同じＲＧＢ色があった配列のインデックスを取得し、これを基に、既に作成してあるこの色に相当するポジティブ画像用データーを書き込んだファイルを探し出し、１を記録し、次に、この色以外のポジティブ画像用データーを書き込んだファイルを全て開き、０を記録して、次に、ネガティブ画像用データーを書き込む為のファイルを探し出して、このファイル末尾に０を記録し、この色以外のネガティブ画像用データーを書き込んだファイルがある場合は、全てのネガティブ画像用データーを書き込む為のファイルのファイル末尾に、１を記録するという工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチする事によって、コンピューターで使用している画像を色ごとに分離し、０と１で構成された画像用データーファイルを作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項３】
予定した数色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列を作成し、このカラー型の一次元配列を仮称、カラーＨ配列とし、前述のカラーＨ配列とは別に、数色分の画素数分のサイズの一次元配列を作成し、この配列を、仮称、カラー１配列、カラー２配列、カラー３配列といった具合に番号を付した名称とし、この配列のグループまたは、一個の配列をカラー配列と仮称し、画素数分のサイズのカラー型の一次元配列を作成し、このカラー型の一次元配列を、仮称、カラーＦ配列とし、サーチした画像の画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とし、また、カラーＨ配列の最初にＲＧＢ形式のカラーを代入したものをカラー１配列と対応させて、これを一対とし、カラーＨ配列の二番目にＲＧＢ形式のカラーを代入したものをカラー２配列と対応させて、これを一対とし、カラーＨ配列の三番目にＲＧＢ形式のカラーを代入したものをカラー３配列と対応させて、これを一対とし、順次、同じように対にし、次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませ、画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントし、画素単位でその画素が何色なのかを確認し、カラーＨ配列に代入されたデーター数を調べて、０だった場合は、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入し、ポジティブ画像用のデーターとして、カラー１配列に１を代入し、カラーＨ配列に代入されたデーター数が、１以上でカラー配列の色数よりも少ない場合は、カラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、同じ色のカラー型のデーターが代入されているカラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、同じ色以外のカラー配列の末尾に、０を代入します。同じ色が無かった場合は、サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、Ｈ確認変数に、１を加算し、次に、画素Ｎ変数とその色に相当するカラー配列に代入されたデーター数とを比較し、サーチしている現在の画素数（画素Ｎ変数）よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合と、２以上少ない場合とに分岐し、１少ない場合は、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を記録し、サーチしている現在の画素数（画素Ｎ変数）よりもその色に相当するカラー配列に代入されたデーター数が２以上少ない場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、０を記録して、最後に１を記録し、次に、その他のカラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、カラーＨ配列に代入されたデーター数が１以上でカラー配列の色数以上の場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、同じ色が代入されているカラーＨ配列のインデックスを取得して、そのインデックスによって、対になっているカラー配列を探し出して、その色に相当するカラー配列の末尾に、１を代入し、同じ色以外のカラー配列の末尾に、０を代入し、同じ色が無かった場合は、カラーＦ配列に記録されたデーター数を調べ、カラーＦ配列に記録されたデーター数が、０の場合と１以上の場合とに分岐し、カラーＦ配列に記録されたデーター数が、０の場合は、ＲＧＢ形式の色をカラーＦ配列の最初にＲＧＢ形式のカラーを代入し、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のファイルを作成し、その作成したファイルに書き込まれたデーター数を調べて現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、０を記録して、最後に１を記録し、カラーＦ配列に代入されたデーター数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査し、新規の色であった場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入し、そのカラーＦ配列のインデックスを取得し、これをファイル名に付加し、このファイルをポジティブ画像用のデーターを書き込む為のファイルとし、この作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と２以上少ない場合に分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に、１を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、０を記録して、最後に１を記録し、既に、カラーＦ配列に同じＲＧＢ色があった場合は、このカラーＦ配列に同じＲＧＢ色があった配列のインデックスを取得し、これを基に、既に作成してあるこの色に相当するポジティブ画像用データーを書き込んだファイルを探し出し、１を記録し、次に、この色以外のポジティブ画像用データーを書き込んだファイルを全て開き、０を記録するという工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチする事によって、コンピューターで使用している画像を色ごとに分離し、０と１で構成された画像用データーファイルを作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項４】
予定した数色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列を作成し、このカラー型の一次元配列を、仮称、カラーＨ配列とし、数色分の一次元配列をポジティブ画像用データーとネガティブ画像用データーとの二種類分作成し、ポジティブ画像用データーとネガティブ画像用データーとの区別をせずに、カラー１配列、カラー２配列、カラー３配列といった具合に番号を付した名称とし、この配列のグループまたは、一個の配列をカラー配列と仮称し、画素数分のサイズのカラー型の一次元配列を作成し、このカラー型の一次元配列を、仮称、カラーＦ配列とし、次に、画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とし、次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませ、画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントし、カラーＨ配列に代入されたデーター数を調べ、カラーＨ配列に代入されたデーター数が、０だった場合は、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入し、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するポジティブ画像用のデーターを代入する為のカラー配列に、１を代入し、次に、その色に相当するネガティブ画像用のデーターを代入する為のカラー配列に、０を代入し、カラーＨ配列に代入されたデーター数が、１以上でカラーＨ配列に代入されたデーター数がカラー配列の色数よりも少ない場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するポジティブ画像用データー用のカラー配列の末尾に、１を代入し、ネガティブ画像用データー用のカラー配列の末尾に、０を代入し、同じ色以外のポジティブ画像用データー用のカラー配列の末尾に、０を代入し、ネガティブ画像用データー用のカラー配列の末尾に、１を代入し、同じ色が無かった場合は、サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、ポジティブ画像用データー用のカラー配列とネガティブ画像用データー用のカラー配列のどちらか一方に代入されたデーター数を調べ、サーチした画素数（画素Ｎ変数）よりもその色に相当するカラー配列に代入されたデーター数が、１少ない場合と２以上少ない場合とに分岐し、サーチした画素数（画素Ｎ変数）よりもその色に相当するカラー配列に代入されたデーター数が、１少ない場合で、ポジティブ画像用データー用のカラー配列の場合は、カラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、ネガティブ画像用データー用のカラー配列の場合は、カラー配列の末尾に、ネガティブ画像用のデーターとして、０を代入し、サーチした画素数（画素Ｎ変数）よりもその色に相当するカラー配列に代入されたデーター数が２以上少ない場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、その後で、末尾に１を代入し、ネガティブ画像用データー用のカラー配列の場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、その色に相当するカラー配列の末尾に、ネガティブ画像用のデーターとして、１を代入し、その後で、末尾に０を代入し、次に、その他の色の全てのポジティブ画像用データー用のカラー配列の場合は、末尾に、０を代入し、その他の色の全てのネガティブ画像用データー用のカラー配列の場合は、末尾に、１を代入し、カラーＨ配列に代入されたデーター数が、１以上でカラーＨ配列に代入されたデーター数がカラー配列の色数以上の場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、その色に相当するポジティブ画像用のデーター用のカラー配列の末尾に、１を代入し、同じ色以外のポジティブ画像用のデーター用のカラー配列の末尾に、０を代入し、その色に相当するネガティブ画像用のデーター用のカラー配列の末尾に、０を代入し、同じ色以外のネガティブ画像用のデーター用のカラー配列の末尾に、１を代入し、同じ色が無かった場合は、全てのポジティブ画像用のデーター用のカラー配列の末尾に、０を代入し、全てのネガティブ画像用のデーター用のカラー配列の末尾に、１を代入し、カラーＦ配列に代入されたデーター数を調べ、カラーＦ配列に代入されたデーター数が、０であった場合と１以上だった場合とに分岐し、カラーＦ配列に代入されたデーター数を調べて、０だった場合は、ＲＧＢ形式の色をカラーＦ配列の最初にＲＧＢ形式のカラーを代入し、新規に作成するネガティブ用画像データーを書き込む為のテキスト形式のファイルとポジティブ画像用のデーターを書き込む為のテキスト形式のファイルのどちらか一方のファイルの拡張子を違うものにするか、または、ファイルの名称を違うものにする事で区別するとともに、新規に作成するポジティブ画像用のデーターを書き込む為のファイルには、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のポジティブ用画像データーを書き込む為のテキスト形式のファイルを作成し、その作成したファイルに書き込まれたデーター数を調べて現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、０を記録して、最後に１を記録し、ネガティブ用画像データーを書き込む為のファイルには、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のファイルを作成し、その作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に０を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、１を記録して、最後に、０を記録し、カラーＦ配列に代入されたデーター数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査し、新規の色であった場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入し、そのカラーＦ配列のインデックスを取得し、これをファイル名に付加し、この画素のネガティブ用画像データーを書き込む為のテキスト形式のファイルと区別する為に、違う名称か、または、違う拡張子を付けて作成し、このファイルをポジティブ画像用のデーターを書き込む為のファイルとし、この作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と２以上少ない場合に分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に、１を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、０を記録して、最後に１を記録し、ネガティブ用画像データーを書き込む為のファイルには、カラーＦ配列の最後の配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のファイルを作成し、その作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に０を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、１を記録して、最後に、０を記録し、既に、カラーＦ配列に同じＲＧＢ色があった場合は、このカラーＦ配列に同じＲＧＢ色があったカラーＦ配列のインデックスを取得し、これを基に、既に作成してあるこの色に相当するポジティブ画像用データーを書き込んだファイルを探し出し、ファイル末尾に１を記録し、次に、この色以外のポジティブ画像用データーを書き込んだファイルを全て開き、ファイル末尾に０を記録して、次に、ネガティブ画像用データーを書き込む為のファイルを探し出して、このファイル末尾に０を記録し、この色以外のネガティブ画像用データーを書き込んだファイルがある場合は、全てのネガティブ画像用データーを書き込む為のファイルのファイル末尾に、１を記録するという工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチする事によって、コンピューターで使用している画像を色ごとに分離し、０と１で構成された画像用データーファイルを作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項５】
特定の数色を特別な色と設定し、Ｔ１カラー、Ｔ２カラー、Ｔ３カラーなどの様に呼び、１色から数色分の画素数分のサイズの一次元配列を作成し、この配列をＴ１カラー配列、Ｔ２カラー配列、Ｔ３カラー配列などの様に呼び、その配列のグループもしくは、一個の配列をＴカラー配列と仮称し、このＴカラー配列には、予定した色ごとにデーターを格納する事とし、数色分の一次元配列を作成し、カラー１配列、カラー２配列、カラー３配列といった具合に番号を付した名称に、仮称し、この配列のグループまたは、一個の配列をカラー配列と仮称し、予定した数色分のサイズのカラー型の一次元配列を作成し、このカラー型の一次元配列を、仮称、カラーＨ配列とし、画素数分のサイズのカラー型の一次元配列を作成し、このカラー型の一次元配列を、仮称、カラーＦ配列とし、画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とし、次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませ、画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントし、予定していた特定の色かどうかを調べ、予定していた特定の特別な色の場合と予定していた特定の特別な色ではなかった場合とに分岐し、予定していた特定の特別な色の場合は、その色に相当する配列のデーター数とサーチした画素数（画素Ｎ変数）を比較して、１少ない場合と２以上少ない場合とに分岐し、１少ない場合は、ポジティブ用画像データーとして、その特定の特別な色に相当するＴカラー配列の末尾に、１を代入し、サーチした画素数（画素Ｎ変数）よりもその色に相当するＴカラー配列に代入されたデーター数が２以上少ない場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、Ｔカラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、その後で、末尾に１を代入し、その他の特定の特別な色のＴカラー配列の全ての配列に書き込まれたデーター数を調べて、１以上であった場合と０であった場合とに分岐し、０であった場合は、何もせず、１以上であった場合は、その色に相当するＴカラー配列の末尾に、０を代入し、予定していた特定の特別な色ではなかった場合は、ポジティブ画像のデーター用のＴカラー配列に、データーが書き込まれているかどうかを検査し、データーが書き込まれている全てのポジティブ画像のデーター用のＴカラー配列の末尾に、０を代入し、次に、カラーＨ配列に代入されたデーター数を検査し、０だった場合は、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入し、ポジティブ画像用のデーターとして、カラー１配列に１を代入し、カラーＨ配列に代入されたデーター数が１以上で、カラーＨ配列に代入されたデーター数がカラー配列の色数よりも少ない場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、同じ色以外のカラー配列の末尾に、０を代入し、同じ色が無かった場合は、サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、サーチした画素数（画素Ｎ変数）よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合と２以上少ない場合とに分岐し、サーチした画素数（画素Ｎ変数）よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合は、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、サーチした画素数（画素Ｎ変数）よりもその色に相当するカラー配列に代入されたデーター数が２以上少ない場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、その後で、末尾に１を代入し、全てのその他の色のカラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、カラーＨ配列に代入されたデーター数がカラー配列の色数以上の場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、同じ色以外のカラー配列の末尾に、０を代入し、同じ色が無かった場合は、全てのカラー配列の末尾に、０を代入し、次に、カラーＦ配列に記録されたデーター数を調べ、カラーＦ配列に記録されたデーター数が、０の場合と１以上の場合とに分岐し、カラーＦ配列に記録されたデーター数が、０の場合は、ＲＧＢ形式の色をカラーＦ配列の最初にＲＧＢ形式のカラーを代入し、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のファイルを作成し、その作成したファイルに書き込まれたデーター数を調べて現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、０を記録して、最後に１を記録し、カラーＦ配列に代入されたデーター数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査し、新規の色であった場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入し、そのカラーＦ配列のインデックスを取得し、これをファイル名に付加し、このファイルをポジティブ画像用のデーターを書き込む為のファイルとし、この作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と２以上少ない場合に分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に、１を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、０を記録して、最後に１を記録し、既に、カラーＦ配列に同じＲＧＢ色があった場合は、このカラーＦ配列に同じＲＧＢ色があった配列のインデックスを取得し、これを基に、既に作成してあるこの色に相当するポジティブ画像用データーを書き込んだファイルを探し出し、１を記録し、次に、この色以外のポジティブ画像用データーを書き込んだファイルを全て開き、０を記録するという工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチする事によって、コンピューターで使用している画像を色ごとに分離し、０と１で構成された画像用データーファイルを作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項６】
特定の数色を特別な色と設定し、ポジティブ画像用のデーター用の配列とネガティブ画像用のデーター用の配列の二種類の１色から数色分の画素数分のサイズの一次元配列を作成し、この配列をＴ１カラー配列、Ｔ２カラー配列、Ｔ３カラー配列などの様に呼び、その配列のグループもしくは、一個の配列をＴカラー配列と仮称し、このＴカラー配列には、予定した色ごとにデーターを格納する事とし、その特定の数色を特別な色と設定した個々の色をＴ１カラー、Ｔ２カラー、Ｔ３カラーなどの様に仮称し、予定した数色分のサイズのカラー型の一次元配列を作成し、このカラー型の一次元配列を仮称、カラーＨ配列とし、ポジティブ画像用データーとネガティブ画像用データーとの二種類の数色分の一次元配列を作成し、この配列を、ポジティブ画像用データーとネガティブ画像用データーとの区別をせずに、カラー１配列、カラー２配列、カラー３配列といった具合に番号を付した名称に仮称し、この配列のグループまたは、一個の配列をカラー配列と仮称し、画素数分のサイズのカラー型の一次元配列を作成し、このカラー型の一次元配列を、カラーＦ配列と仮称し、画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数と仮称し、次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませ、画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントし、予定していた特定の色かどうかを調べ、予定していた特定の色の場合と予定していた特定の色ではなかった場合とに分岐し、予定していた特定の特別な色の場合は、その色に相当する配列のデーター数とサーチした現在の画素数（画素Ｎ変数）を比較して、１少ない場合と２以上少ない場合とに分岐し、１少ない場合は、その特定の特別な色に相当するポジティブ画像データー用のＴカラー配列の末尾に、１を代入し、その特定の特別な色に相当するネガティブ画像データー用のＴカラー配列の末尾に、０を代入し、２以上少ない場合は、その特定の特別な色に相当するポジティブ画像のデーター用のＴカラー配列には、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、ポジティブ画像のデーター用のＴカラー配列の末尾に、０を代入し、その後で、末尾に１を代入し、その特定の特別な色に相当するネガティブ画像のデーター用のＴカラー配列には、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、その特定の特別な色に相当するネガティブ画像のデーター用のＴカラー配列の末尾に、１を代入し、その後で、末尾に０を代入し、その他の特定の特別な色のＴカラー配列の全ての配列に書き込まれたデーター数を調べて、その他の特定の特別な色のＴカラー配列に書き込まれたデーター数が、１であった場合と０であった場合とに分岐し、０であった場合は、何もせず、１であった場合は、その色に相当するポジティブ画像のデーター用のＴカラー配列の末尾に、０を代入し、その色に相当するネガティブ画像のデーター用のＴカラー配列の末尾に、１を代入し、予定していた特定の特別な色ではなかった場合は、ポジティブ画像のデーター用のＴカラー配列に、データーが書き込まれているかどうかを検査し、データーが書き込まれている全てのポジティブ画像のデーター用のＴカラー配列の末尾に、０を代入し、ネガティブ画像のデーター用のＴカラー配列に、データーが書き込まれているかどうかを検査し、データーが書き込まれている全てのネガティブ画像のデーター用のＴカラー配列の末尾に、１を代入し、カラーＨ配列に代入されたデーター数を調べ、カラーＨ配列に代入されたデーター数が、０だった場合は、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入し、その色に相当するポジティブ画像用のデーターを代入する為のカラー１配列に、１を代入し、次に、その色に相当するネガティブ画像用のデーターを代入する為のカラー１配列に、０を代入し、カラーＨ配列に代入されたデーター数が、１以上でカラーＨ配列に代入されたデーター数がカラー配列の色数よりも少ない場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するポジティブ画像用データー用のカラー配列の末尾に、１を代入し、ネガティブ画像用データー用のカラー配列の末尾に、０を代入し、同じ色以外のポジティブ画像用データー用のカラー配列の末尾に、０を代入し、ネガティブ画像用データー用のカラー配列の末尾に、１を代入し、同じ色が無かった場合は、サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、ポジティブ画像用データー用のカラー配列かネガティブ画像用データー用のカラー配列のどちらか一方に代入されたデーター数を調べ、サーチした画素数（画素Ｎ変数）よりもその色に相当するカラー配列に代入されたデーター数が、１少ない場合と２以上少ない場合とに分岐し、サーチした画素数（画素Ｎ変数）よりもその色に相当するカラー配列に代入されたデーター数が、１少ない場合で、ポジティブ画像用データー用のカラー配列の場合は、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、ネガティブ画像用データー用のカラー配列の場合は、その色に相当するカラー配列の末尾に、ネガティブ画像用のデーターとして、０を代入し、サーチした画素数よりもその色に相当するカラー配列に代入されたデーター数が２以上少ない場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、その後で、末尾に１を代入し、ネガティブ画像用データー用のカラー配列の場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、その色に相当するカラー配列の末尾に、ネガティブ画像用のデーターとして、１を代入し、その後で、末尾に０を代入し、次に、その他の色の全てのポジティブ画像用データー用のカラー配列の場合は、末尾に、０を代入し、その他の色の全てのネガティブ画像用データー用のカラー配列の場合は、末尾に、１を代入し、カラーＨ配列に代入されたデーター数が、１以上でカラーＨ配列に代入されたデーター数がカラー配列の色数以上の場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するポジティブ画像用のデーター用のカラー配列の末尾に、１を代入し、その色に相当するネガティブ画像用のデーター用のカラー配列の末尾に、０を代入し、同じ色以外のポジティブ画像用のデーター用のカラー配列の末尾に、０を代入し、同じ色以外のネガティブ画像用のデーター用のカラー配列の末尾に、１を代入し、同じ色が無かった場合は、全てのポジティブ画像用のデーター用のカラー配列の末尾に、０を代入し、全てのネガティブ画像用のデーター用のカラー配列の末尾に、１を代入し、カラーＦ配列に代入されたデーター数を調べ、カラーＦ配列に代入されたデーター数が、０であった場合と１以上だった場合とに分岐し、カラーＦ配列に代入されたデーター数を調べて、０だった場合は、ＲＧＢ形式の色をカラーＦ配列の最初にＲＧＢ形式のカラーを代入し、新規に作成するポジティブ用画像データーを書き込む為のテキスト形式のファイルとネガティブ画像用のデーターを書き込む為のテキスト形式のファイルのどちらか一方のファイルの拡張子を違うものにするか、または、ファイルの名称を違うものにする事で区別するとともに、新規に作成するポジティブ画像用のデーターを書き込む為のファイルには、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のファイルを作成し、その作成したファイルに書き込まれたデーター数を調べて現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、０を記録して、最後に１を記録し、ネガティブ用画像データーを書き込む為のファイルには、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のファイルを作成し、その作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に０を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、１を記録して、最後に、０を記録し、カラーＦ配列に代入されたデーター数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査し、新規の色であった場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入し、そのカラーＦ配列のインデックスを取得し、これをファイル名に付加し、この画素のネガティブ用画像データーを書き込む為のテキスト形式のファイルと区別する為に、違う名称か、または、違う拡張子を付けて作成し、このファイルをポジティブ画像用のデーターを書き込む為のファイルとし、この作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と２以上少ない場合に分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に、１を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、０を記録して、最後に１を記録し、ネガティブ用画像データーを書き込む為のファイルには、カラーＦ配列の最後の配列のインデックスを取得して、そのインデックスをファイルの名称に付加することによって色ごとに対応した番号名のファイルを作成し、その作成したファイルに書き込まれたデーター数を調べて、現在の画素数（画素Ｎ変数）と比較し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐し、現在の画素数（画素Ｎ変数）よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に０を記録し、２以上少ない場合は、このファイルの末尾に、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、１を記録して、最後に、０を記録し、既に、カラーＦ配列に同じＲＧＢ色があった場合は、このカラーＦ配列に同じＲＧＢ色があった配列のインデックスを取得し、これを基に、既に作成してあるこの色に相当するポジティブ画像用データーを書き込んだファイルを探し出し、１を記録し、次に、この色以外のポジティブ画像用データーを書き込んだファイルを全て開き、０を記録して、次に、ネガティブ画像用データーを書き込む為のファイルを探し出して、このファイル末尾に０を記録し、この色以外のネガティブ画像用データーを書き込んだファイルがある場合は、全てのネガティブ画像用データーを書き込む為のファイルのファイル末尾に、１を記録するという工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチする事によって、コンピューターで使用している画像を色ごとに分離し、０と１で構成された画像用データーファイルを作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項７】
ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませ、読み込ませた画像の画素を最初から最後までサーチして、何色の色が使われているかを調べて、色数分の次元数で、画素数分のサイズの配列を作成し、これをカラー配列と仮称し、色数分サイズのＲＧＢ形式のデーターを格納する事が出来るカラー型の一次元配列を作成し、カラーＨ配列と仮称し、画素数をカウントして、現在サーチしている画素が何番目の画素なのかを知る為の変数を作成し、この画素数をカウントする為の変数を画素Ｎ変数と仮称し、もう一度、画像の最初から画素をサーチし、画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントし、カラーＨ配列に代入されたデーター数を調べて、０だった場合は、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入し、カラー配列に１を代入し、カラーＨ配列に代入されたデーター数が１以上である場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するカラー配列の末尾に、１を代入し、同じ色以外のカラー配列の末尾に、０を代入し、同じ色が無かった場合は、サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、画素Ｎ変数とその色に相当するカラー配列に代入されたデーター数とを比較し、画素Ｎ変数よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合と２以上少ない場合とに分岐し、１少ない場合は、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を記録し、２以上少ない場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、０を記録して、最後に１を記録し、次に、その他の色全てのカラー配列の末尾に、０を代入するという工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチする事によって、コンピューターで使用している画像を色ごとに分離し、０と１で構成された画像用データー配列を作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項８】
ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませ、読み込ませた画像の画素を最初から最後までサーチして、何色の色が使われているかを調べて、色数分の次元数で、画素数分のサイズの配列をポジティブ画像用とネガティブ画像用との二種類作成し、これをカラー配列と仮称し、色数分サイズのＲＧＢ形式のデーターを格納する事が出来るカラー型の一次元配列を作成し、カラーＨ配列と仮称し、画素数をカウントして、現在サーチしている画素が何番目の画素なのかを知る為の変数を作成し、この画素数をカウントする為の変数を画素Ｎ変数と仮称し、次に、もう一度、画像の最初から画素をサーチし、画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントし、カラーＨ配列に代入されたデーター数を調べて、０だった場合は、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入し、ポジティブ画像用のカラー配列に１を代入し、ネガティブ画像用のカラー配列に０を代入し、カラーＨ配列に代入されたデーター数が１以上である場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、ネガティブ画像用のデーターとして、０を代入し、同じ色以外のポジティブ画像用のカラー配列の末尾に、０を代入し、ネガティブ画像用のカラー配列の末尾に、１を代入し、同じ色が無かった場合は、サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、画素Ｎ変数と、その色に相当するポジティブ画像用カラー配列または、ネガティブ画像用カラー配列のどちらか一方のカラー配列に代入されたデーター数とを比較し、画素Ｎ変数よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合と２以上少ない場合とに分岐し、１少ない場合は、その色に相当するポジティブ画像用のカラー配列の末尾に、ポジティブ画像用のデーターとして、１を記録し、ネガティブ画像用のカラー配列の末尾に、ネガティブ画像用のデーターとして、０を記録し、２以上少ない場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、ポジティブ画像用のカラー配列の末尾に、０を記録して、最後に１を記録し、ネガティブ画像用のカラー配列の末尾に、１を記録して、最後に０を記録し、次に、その他の色用のポジティブ画像用のカラー配列の末尾に、０を代入し、ネガティブ画像用のカラー配列の末尾に、１を代入するという工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチする事によって、コンピューターで使用している画像を色ごとに分離し、０と１で構成された画像用データー配列を作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項９】
ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませ、読み込ませた画像の画素を最初から最後までサーチして、何色の色が使われているかを調べて、通し番号を付けて色数分のファイルを作成し、これをカラーファイルと仮称し、次に、色数分サイズのＲＧＢ形式のデーターを格納する事が出来るカラー型の一次元配列を作成し、カラーＦ配列と仮称し、画素数をカウントして、現在サーチしている画素が何番目の画素なのかを知る為の変数を作成し、この画素数をカウントする為の変数を画素Ｎ変数と仮称し、カラーファイルの通し番号は、カラーＦ配列の最初のインデックスから終端のインデックスと同じにする事で相互に一対にし、カラーＦ配列のインデックスから、カラーファイルを探す事が出来る様に作成し、次に、もう一度、画像の最初から画素をサーチし、画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントし、カラーＦ配列に代入されたデーター数を調べて、０だった場合は、そのＲＧＢ形式の色をカラーＦ配列の最初にＲＧＢ形式のカラーを代入し、ポジティブ画像用のデーターとして、カラーファイルに１を代入し、カラーＦ配列に代入されたデーター数が１以上である場合は、サーチした色が既に記録されているかどうかをカラーＦ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、カラーＦ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラーファイルが、その色に相当するカラーファイルなのかを探し出し、その色に相当するカラーファイルの末尾に、ポジティブ画像用のデーターとして、１を代入し、同じ色以外のカラーファイルの末尾に、０を代入し、同じ色が無かった場合は、サーチした画素のカラー型のデーターをカラーＦ配列の末尾に代入し、カラーＦ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラーファイルが、その色に相当するカラーファイルなのかを探し出し、画素Ｎ変数と、その色に相当するカラーファイルに代入されたデーター数を比較し、画素Ｎ変数よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合と２以上少ない場合とに分岐し、１少ない場合は、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を記録し、２以上少ない場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、カラーファイルの末尾に、ポジティブ画像用のデーターとして、０を記録して、最後に１を記録し、その他の色のカラーファイルの末尾に、ポジティブ画像用のデーターとして、０を代入するという工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチする事によって、コンピューターで使用している画像を色ごとに分離し、０と１で構成された画像用データーファイルを作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項１０】
ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませ、読み込ませた画像の画素を最初から最後までサーチして、何色の色が使われているかを調べて、通し番号を付けて色数分のファイルをポジティブ画像用とネガティブ画像用との二種類作成し、これをカラーファイルと仮称し、このカラーファイルは、ポジティブ画像用カラーファイルとネガティブ画像用カラーファイルを区別する為に、ファイルの名称を違うものにするか、拡張子を違うものにして作成し、次に、色数分サイズのＲＧＢ形式のデーターを格納する事が出来るカラー型の一次元配列を作成し、カラーＦ配列と仮称し、次に、画素数をカウントして、現在サーチしている画素が何番目の画素なのかを知る為の変数を作成し、この画素数をカウントする為の変数を画素Ｎ変数と仮称し、カラーファイルの通し番号は、カラーＦ配列の最初のインデックスから終端のインデックスと同じにする事で相互に一対にし、カラーＦ配列のインデックスから、カラーファイルを探す事が出来る様に作成し、次に、もう一度、画像の最初から画素をサーチし、画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントし、カラーＦ配列に代入されたデーター数を調べて、０だった場合は、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入し、ポジティブ画像用のカラーファイルに１を代入し、ネガティブ画像用のカラーファイルに０を代入し、カラーＦ配列に代入されたデーター数が１以上である場合は、サーチした色が既に記録されているかどうかをカラーＦ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐し、同じ色があった場合は、カラーＦ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラーファイルが、その色に相当するカラーファイルなのかを探し出し、その色に相当するポジティブ画像用のカラーファイルの末尾に、１を代入し、ネガティブ画像用のカラーファイルの末尾に、０を代入し、同じ色以外のポジティブ画像用のカラーファイルの末尾に、０を代入し、ネガティブ画像用のカラーファイルの末尾に、１を代入し、同じ色が無かった場合は、サーチした画素のカラー型のデーターをカラーＦ配列の末尾に代入し、カラーＦ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラーファイルが、その色に相当するカラーファイルなのかを探し出し、画素Ｎ変数と、その色に相当するポジティブ画像用カラーファイルまたは、ネガティブ画像用カラーファイルのどちらか一方のカラーファイルに代入されたデーター数を比較し、画素Ｎ変数と、その色に相当するカラーファイルに代入されたデーター数を比較し、画素Ｎ変数よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合と２以上少ない場合とに分岐し、１少ない場合は、その色に相当するポジティブ画像用のカラー配列の末尾に、ポジティブ画像用のデーターとして、１を記録し、その色に相当するネガティブ画像用のカラー配列の末尾に、ネガティブ画像用のデーターとして、０を記録し、２以上少ない場合は、現在の画素数（画素Ｎ変数）から１を減算した回数だけ、ポジティブ画像用のカラーファイルの末尾に、０を記録して、最後に１を記録し、ネガティブ画像用のカラーファイルの末尾に、１を記録して、最後に０を記録し、次に、その他の色のポジティブ画像用のカラーファイルの末尾に、０を代入し、ネガティブ画像用のカラーファイルの末尾に、１を代入するという工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチする事によって、コンピューターで使用している画像を色ごとに分離し、０と１で構成された画像用データーファイルを作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項１１】
［請求項１］と［請求項２］と［請求項３］と［請求項４］と［請求項５］と［請求項６］と［請求項７］と［請求項８］と［請求項９］と［請求項１０］と［請求項１１］のいずれかの工程で作成した画像データーは、０と１で構成されているが、これを０と１ではなく、ＲＧＢ形式の色コードを整数値に書き換えて、ファイルや配列に代入し、画像データー配列や画像データーファイルを作成し、この一旦作成した整数値によって構成されたファイルや配列から、０と１のテキスト形式の文字で構成されたファイルや配列に書き換える事によって、色ごとに分けられた０と１で構成された画像用テキストファイルや配列を作成するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項１２】
［請求項１］と［請求項２］と［請求項３］と［請求項４］と［請求項５］と［請求項６］と［請求項７］と［請求項８］と［請求項９］と［請求項１０］と［請求項１１］のいずれかの工程で作成した画像データーが配列に代入されている場合は、配列の最初から最後までサーチして、配列に代入されたデーターが０の場合は、白色とし、配列に代入されたデーターが１の場合は、黒色として、一画素ずつ、白色または、黒色に置き換えて画像を描画する事によって、画像に変換し、色ごとに分けられた０と１で構成された画像用テキストファイルから、画像を作成する場合は、まず、画像用テキストファイルに書き込まれている画像データー数と同じサイズの一次元配列を作成して、この一次元配列に画像用テキストファイルから、データーを全て代入し、この一次元配列に代入された画像用データーを読み込み、０の場合は、白色とし、１の場合は、黒色として、画像を一画素ずつ描画し、一次元配列に代入された画像用データーの最終まで処理して画像に変換させ、画像に変換した画像が、文字として読める文字かどうかを、画素単位で画素を調べて一つの整数値を取得するコンピューターソフトウェア（特開平３−２４０８９１）や、特徴点認識コンピューターソフトウェア（特開２０００−２０７４９５）や、中心線を利用するコンピューターソフトウェアや、輪郭を利用するコンピューターソフトウェア（特開５−１６６００２）や、フーリエ記述子を利用するコンピューターソフトウェアや、ファイルレベルで画素を調べて一つの整数値を取得するコンピューターソフトウェア（特願２００７−２０３６２１）や、二重像コンピューターソフトウェア（特願２００７−２１７５９３）などや、本発明出願時点で既に発明されているコンピューターソフトウェアが他にもある場合は、そのコンピューターソフトウェアを利用する事によって、予め作成してある文字用辞書と照合し、画像に書かれた手書き文字を通常コンピューターで使用しているテキスト文字に変換するコンピューターソフトウェアの内どのコンピューターソフトウェアの場合でも、完全一致を含む最近似値のものを選択させて、その完全一致を含む最近似値が一定の誤差値以内であるかどうかによって、読めた場合と読めなかった場合とに分岐させ、読めた場合は、文字であると判定し、読めない場合は、絵であると判定する事で、コンピューターに自動で認識させて、画像に書かれた手書き文字を通常コンピューターで使用しているテキスト文字に変換するコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【請求項１３】
［請求項１］と［請求項２］と［請求項３］と［請求項４］と［請求項５］と［請求項６］と［請求項７］と［請求項８］と［請求項９］と［請求項１０］と［請求項１１］のいずれかの工程で作成した画像データーが配列に代入されている場合は、配列の最初から最後までサーチして、配列に代入されたデーターが０の場合は、白色とし、配列に代入されたデーターが１の場合は、黒色として、一画素ずつ、白色または、黒色に置き換えて画像を描画する事によって、画像に変換し、色ごとに分けられた０と１で構成された画像用テキストファイルから、画像を作成する場合は、まず、画像用テキストファイルに書き込まれている画像データー数と同じサイズの一次元配列を作成して、この一次元配列に画像用テキストファイルから、データーを全て代入し、この一次元配列に代入された画像用データーを読み込み、０の場合は、白色とし、１の場合は、黒色として、画像を一画素ずつ描画し、一次元配列に代入された画像用データーの最終まで処理して画像に変換させ、画像に変換した画像が、文字として読める文字かどうかを、画素単位で画素を調べて一つの整数値を取得するコンピューターソフトウェア（特開平３−２４０８９１）や、中心線を利用するコンピューターソフトウェアや、輪郭を利用するコンピューターソフトウェア（特開５−１６６００２）や、フーリエ記述子を利用するコンピューターソフトウェアや、ファイルレベルで画素を調べて一つの整数値を取得するコンピューターソフトウェア（特願２００７−２０３６２１）や、二重像コンピューターソフトウェア（特願２００７−２１７５９３）などや、本発明出願時点で既に発明されているコンピューターソフトウェアが他にもある場合は、そのコンピューターソフトウェアを利用する事によって、完全二値化した物体の画像だけの画像ファイルとその画像が何であるのかをテキスト文字で記録した物体用辞書を作成し、この予め作成してある物体用辞書と照合し、画像に書かれた手書き文字を通常コンピューターで使用しているテキスト文字に変換するコンピューターソフトウェアの内どのコンピューターソフトウェアの場合でも、完全一致を含む最近似値のものを選択させて、その完全一致を含む最近似値が一定の誤差値以内であるかどうかによって、画像として描かれた物体が何であるかを判定できた場合と判定できなかった場合とに分岐させ、判定できた場合は、物体の絵であると判定し、判定できなかった場合は、文字であると判定する事で、コンピューターに自動で認識させる事によって、画像に描かれた物体を何であるかを判定させて、その物体の名称を通常コンピューターで使用しているテキスト文字で答えるコンピューターソフトウェアもしくは、このコンピューターソフトウェアが含まれた記録媒体
【発明の詳細な説明】
【技術分野】
【０００１】本発明は、コンピューターで、画像を認識する技術に関する
【背景技術】
【０００２】従来からあるものとしては、（非特許文献１）があります。
【非特許文献１】  北山洋幸  著  ．ＮＥＴ  Ｆｒａｍｅｗｏｒｋプログラミングテクニックｆｏｒ  Ｖｉｓｕａｌ  Ｂａｓｉｃ／Ｃ＃  Ｖｏｌ．５  グラフィクス＆イメージ（Ｉ）Ｃ＃編  株式会社カットシステム  ２００６／１２／１０  初版弟一刷発行  Ｐ２１４〜Ｐ２３８
【発明の開示】
【発明が解決しようとする課題】
【０００３】従来から行われている画像をサーチするコンピューターソフトウェアの場合は、白と黒で構成された完全２値化画像の位置をｘ座標とｙ座標の最小値と最大値を取得して行っております。しかしながら、この従来から行われている画像をサーチするコンピューターソフトウェアでは、画像に文字だけが書かれている場合のみに有効な手段であると思われます。なぜなら、文字以外の絵が含まれている場合、どこに文字が書かれているのかをコンピューターに認識させる事が困難であるからです。
【課題を解決するための手段】
【０００４】本発明の色分離判読コンピューターソフトウェアの事を色分離法もしくは、色分離判読法ないし、色分離判別法と呼ぶ事があります。また、コンピューターソフトウェアの事を、方法とか法とか技術と呼ぶ事があります。【０００５】普通、カラー画像である場合が殆どであると考えられます。そこで、カラー画像の色を分離し、色ごとの画像を作り、それが文字なのか、文字ではない絵なのかを判断させるソフトウェアを考えました。問題点としては、文字と同色の画像が重なっている場合このソフトウェアでは、文字を判読できない場合があるという事です。しかしながら、通常の画像の場合は、殆どこの様な問題は、発生しないと考えられます。なぜなら、人間にとっても、この様な、文字と文字ではない絵とが同じ色を使用している画像は、とても文字が読みにくい画像となってしまうからです。説明の都合上、文字と文字以外の絵と区別しましたが、登録側に文字以外の絵を登録する事で辞書を構成して実施する事もできます。実施例では、文字以外の物体の絵を辞書に登録して描かれた絵が何であるかをも判定させています。従って、正確な意味での表現は、辞書に登録されているものが、辞書に登録されているものと登録されていないものとが混在した画像のどこに書かれているかを検出するソフトウェアとなります。また、［非特許文献１］に記載されている方法は、いずれも、ＲＧＢ形式の画像をＲとＧとＢとの３種類のカラーに分離する方法であります。Ｐ２１４〜Ｐ２２２のＲＧＢの分離（１）は、ＲＧＢのカラー成分の内一つを指定し、その指定したカラー成分を画像表示部の表示された画像から抽出して、その抽出したカラー成分で作業用の画像オブジェクトを１画素ずつ書き換えて、それを画像表示部に表示された画像に反映させて表示するソフトウェアが記述されています。Ｐ２２３〜Ｐ２３０のＲＧＢの分離（２）は、ＣｏｌｏｒＭａｔｒｉｘによる色変換を行うソフトウェアの説明がされています。Ｐ２３１〜Ｐ２３８のＲＧＢの分離（３）は、メモリーを直接操作して色変換を行うソフトウェアについての記述です。いずれのソフトウェアも、ファイルや配列を利用するものではないのと、色そのもので分離するものではないので、全て、本発明とは、異なる技術で作られたソフトウェアです。【０００６】考えられる画像の色構成としては、白バックで黒文字の場合と、黒バックで白文字の場合と、いろいろな色を使用した文字とそれ以外の不特定の色で作成されたパック色で出来たものの場合と、不特定の色を使用したバック色と白文字で構成された画像の場合とがあると考えられます。つまり、全ての色に対して、白抜き文字がある、または、画像にもネガティブ画像があると考えられるというわけです。【０００７】カラーの色ごとに配列を作成する事は、非常に困難です。色は、数万色あるからです。予め色数分の配列を用意して、そこに画像データーを振り分けていく方法は取れないという事です。処理速度は、この方法が最速であるという事は、言うまでも有りませんが、とてつもない量のメモリー領域を使用してしまう事になるからです。また、予め、色ごとに格納するファイルを作成する方法も考えられますが、コンピュータープログラムを書くという行為を殆ど不可能であると思わせる様なコーディング量になってしまう為、これも効率が極めて悪いと思われます。また、ファイルではなく、データーベースソフトウェアに予め、色ごとに格納するレコードを作製しておくというのも同じ様に不可能であると思われる行為です。勿論、作成する事は、出来ますが、効率が悪すぎるコーディング行為であると思われます。そこで、以下の様に、新規に色が見つかった時点でファイルもしくは、データーベースのレコードを作成する方法を考えました。この方法による場合、なぜ、新規に色が見つかった時点で配列を作成しないのかという疑問が湧くと思いますが、通常、コンピュータープログラムを実行させた状態から配列を作成する事が出来ないからです。コンピュータープログラムを実行させた状態から、自由に配列を作成する事が出来る機能があるコンパイラがあれば新規に色が見つかった時点で配列を作成する方法も本発明の簡単なレパートリーとして、権利主張をしたいと考えております。さて、実施例では、データーベースソフトウェアを使用せずに、テキスト形式のランダムアクセスファイルのデーターベースを使用し、白色と黒色の場合だけ特別視する事で高速処理を行う様にしました。つまり、白色と黒色の場合は、予め用意した配列にデーターを代入する様にしたのです。また、白色と黒色以外の色でも、高速処理が可能になる様に、配列を白色と黒色以外の色、二色までについては、配列を利用したデーター分類方法をとりました。そうして、これらの配列に色ごとにデーターを保存し、予め用意した配列個数を超える色の数になった時、ファイルを作成するという様にしました。この実施例で行った方法の様に、予め数個の配列を作成しておき、予定数の配列を超える数の色数に達した時に、ファイルを作成して、データーを保存するという方法も可能です。新規レコードをコンピュータープログラムから作成する事が出来るデーターベースソフトウェアを使用する場合は、ファイルを作成する場合と殆ど同じ工程で処理する事になります。また、実施例の工程は、あくまでも、一つの例であって、実施例の通りでなければ出来ないというものではありません。工程を変化させることも可能です。特に、場合分けによる多分岐部分は、順序を入れ替える事が出来ます。また、ファイル名の付け方もいろいろな方法が考えられます。つまり、実施例では、ファイル名の付け方なども説明しておりますが、実施例以外の方法でも可能であると考えております。【０００８】基本的には、テキスト形式で保存ファイルを作成しますので、記録するデーターは、テキストデーターになります。ポジティブ用画像データーの場合、注目色があった場合、それが何色でも、１とし、注目色以外の色は、０として記録します。ネガティブ用画像データーの場合、注目色があった場合、それが何色でも、０とし、注目色以外の色は、１として記録します。この記録データーは、０と１を使用すると書きましたが、あくまでも例示です。たとえば、注目色があった場合、それが何色でも、１とし、注目色以外の色は、２として記録する事もできます。【０００９】どの様な種類があるかを、まとめて箇条書きにし、その場合ごとに、工程を説明します。
（１）ファイルのみを作成する場合で、ポジティブ用画像データーだけを作成する場合
（２）ファイルのみを作成する場合で、ネガティブ用画像データーも作成する場合
（３）数色分の配列を使用し、その配列数を超えた場合にファイルを作成する場合で、ポジティブ画像だけの場合
（４）数色分の配列を使用し、その配列数を超えた場合にファイルを作成する場合で、ネガティブ画像用データーも作成する場合
（５）特定な色を特別な色として、特別に配列を使用し、特定な色以外のその他の色用として数色分の配列を使用し、特定な色以外のその他の色用として数色分の配列数を超えた場合にファイルを作成する場合で、ポジティブ画像だけの場合
（６）特定な色を特別な色として、特別に配列を使用し、特定な色以外のその他の色用として数色分の配列を使用し、特定な色以外のその他の色用として数色分の配列数を超えた場合にファイルを作成する場合で、ネガティブ画像用データーも作成する場合
（７）画像に使われている色を全て調べて色数をカウントし、色数分の配列を作成する場合で、ポジティブ画像だけの場合
（８）画像に使われている色を全て調べて色数をカウントし、色数分の配列を作成する場合で、ネガティブ画像用データーも作成する場合
（９）画像に使われている色を全て調べて色数をカウントし、色数分のファイルを作成する場合で、ポジティブ画像だけの場合
（１０）画像に使われている色を全て調べて色数をカウントし、色数分のファイルを作成する場合で、ネガティブ画像用データーも作成する場合
（１１）（１）から（１０）の場合で、作成するデーターを０と１のテキスト形式の文字ではなく、ＲＧＢ形式の色コードを整数値化して、その整数値で画像データーをファイルや配列で作成し、その後で、０と１のテキスト形式の文字のデーターに書き換える事によって、画像データーをファイルや配列を作成する場合、この場合は、もう、説明する必要性が無いと思われますので説明をこれ以上行いません。
（１２）上記、（１）から（１１）の簡単なレパートリーと考えられるもの（例えば、透明度の違いや輝度の違いなどで、０や１にする色を指定する程度を変更したものまたは、使用する配列の次元数の違いや、作成するファイルの名称の付け方などによる違いなどです。以上の様な場合が考えられると思われます。（１１）の場合は、説明を割愛致します。なぜなら、あまりにいろいろな工程が考えられるからです。（１２）の場合も、説明を割愛します。（１２）の場合は、これ以上、説明する必要性が無いと思われるからです。【００１０】以下に、配列に書き込まれたデーター数を確認する為のいろいろな変数を作成しておりますが、いずれも、配列に書き込まれたデーター数を調べる事で、変数を作らなくても、同じ事が行えます。但し、画素数をカウントする為の変数などは、必要不可欠な変数であります。【００１１】（１）ファイルのみを作成する場合で、ポジティブ用画像データーだけを作成する場合【００１２】まず、画像ファイルの画素数分のサイズでカラー型の一次元配列を作成します。ここに、一次元配列と書きましたが、これも、２次元配列、３次元配列、４次元配列、以降次元数を無限大まで増幅する事で違う書き方として、書くことも可能です。このカラー型の一次元配列の事を説明の都合上、カラーＦ配列と仮称します。それと、このカラー型の一次元配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｆ確認変数とします。画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とします。【００１３】次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませます。画像の最初から最後まで画素をサーチし以下の処理を行います。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。画素単位でその画素が何色なのかを確認します。Ｆ確認変数を調べます。０だった場合は、まだファイルが作られていない事を意味します。つまり、Ｆ確認変数が０だった場合は、最初の色であるという事になります。最初の色は、新規の色ですので、そのＲＧＢ形式の色をカラーＦ配列の最初にＲＧＢ形式のカラーを代入します。そうして、Ｆ確認変数に１を加算します。Ｆ確認変数に１を加算する事でカラー型の一次元配列にＲＧＢ形式のデーターが幾つ代入されているかが確認できるわけです。とはいっても、カラーＦ配列にＲＧＢ形式のデーターが幾つ代入されているかを調べる方法は、他にもあります。通常の配列要素数の検査方法を行う事でも可能であります。【００１４】そうして、新規にポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを作成します。このファイルは、番号を付けて作成します。このファイルの番号は、色ごとに一対にした番号とします。つまり、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスを付したファイルを作成します。ここで、カラーＦ配列にＲＧＢ形式のデーターが幾つ代入されているかを取得してファイルに番号を付ける事も可能です。また、技術的には、番号ではなく、アルファベットなどにする事もできます。そうして、テキスト形式のファイルに１を記録します。【００１５】Ｆ確認変数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査します。新規の色であった場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入して、新規にポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを作成します。次に、Ｆ確認変数に１を加算します。当然、このファイルも前述のファイルと同じ様にＲＧＢ形式のカラーを代入した、そのカラーＦ配列のインデックスを取得して、これをファイル名に付けて、ファイルを作成します。この様なファイル名の付け方をする事で、後で、検索する時も検索しやすくなるわけです。書き込まれたデーター数を調べて、現在の画素数と比較し、現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録します。２以上少ない場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。次に、この色以外のファイルを全て開き０を記録します。カラーＦ配列に同じＲＧＢ色があった場合は、同じ色のＲＧＢ形式の色が代入されたカラーＦ配列のインデックスを取得して、それを基に、既に作成してあるインデックスを付したファイルを探し出します。そのファイルに書き込まれたデーター数を確認し、現在の画素数と比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１だけ少ない場合と、２以上少ない場合とに分岐します。現在の画素数よりも書き込まれたデーター数が１だけ少ない場合は、ファイル末尾に１を記録します。２以上少ない場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。そうして、この色以外のファイルがある場合、つまり、Ｆ確認変数が２以上だった場合は、この色以外のファイルを全て開き０を記録します。【００１６】この工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチします。完了すれば、色ごとに分けられた０と１で構成された画像用テキストファイルが出来上がります。【００１７】（２）ファイルのみを作成する場合で、ネガティブ用画像データーも作成する場合【００１８】まず、画像ファイルの画素数分のサイズでカラー型の一次元配列を作成します。ここに、一次元配列と書きましたが、これも、２次元配列、３次元配列、４次元配列、以降次元数を無限大まで増幅する事で違う書き方として、書くことも可能です。このカラー型の一次元配列の事を説明の都合上、カラーＦ配列と仮称します。それと、このカラー型の一次元配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｆ確認変数とします。画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とします。【００１９】次に、ＢＭＰ形式やＪＰＥＧ形式などで作られた画像ファイルをコンピューターに読み込ませます。画像の最初から最後まで画素をサーチし以下の処理を行います。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。画素単位でその画素が何色なのかを確認します。Ｆ確認変数を調べます。０だった場合は、まだファイルが作られていない事を意味します。つまり、Ｆ確認変数が０だった場合は、最初の色であるという事になります。最初の色は、新規の色ですので、そのＲＧＢ形式の色をカラーＦ配列の最初にＲＧＢ形式のカラーを代入します。そうして、Ｆ確認変数に１を加算します。Ｆ確認変数に１を加算する事でカラー型の一次元配列にＲＧＢ形式のデーターが幾つ代入されているかが確認できるわけです。とはいっても、カラー型の一次元配列にＲＧＢ形式のデーターが幾つ代入されているかを調べる方法は、他にもあります。通常の配列要素数の検査方法を行う事でも可能であります。【００２０】そうして、新規にポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを作成します。このファイルは、番号を付けて作成します。このファイルの番号は、色ごとに一対にした番号とします。つまり、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスを付したファイルを作成します。ここで、カラーＦ配列にＲＧＢ形式のデーターが幾つ代入されているかを取得してファイルに番号を付ける事も可能です。また、技術的には、番号ではなく、アルファベットなどにする事もできます。そうして、この新規に作成したテキスト形式のファイルに１を記録します。【００２１】次にネガティブ用画像データーを書き込む為のテキスト形式のファイルを作成します。ポジティブ画像用のデーターを書き込む為のテキスト形式のファイルと同じ様に作成します。つまり、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスを付したファイルを作成するわけです。しかしながら、これでは、ネガティブ用画像データーを書き込む為のテキスト形式のファイルとポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを区別できません。どちらか一方のファイルの拡張子を違うものにする事で区別する事ができます。従って、ここで作成しているのは、ネガティブ用画像データーを書き込む為のテキスト形式のファイルですので、ポジティブ画像用のデーターを書き込む為のテキスト形式のファイルに使用している拡張子とは違う拡張子を付けます。そうして、このテキスト形式のファイルに、０を記録します。拡張子を違うものにする事によって、ファイルの種類を区別する方法とは別の方法もあります。ファイルの名称を違うものにする事でも区別する事ができます。【００２２】Ｆ確認変数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査します。新規の色であった場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入して、新規にポジティブ画像用データーを書き込む為のテキスト形式のファイルを作成します。次に、Ｆ確認変数に１を加算します。当然、このファイルも前述のファイルと同じ様にＲＧＢ形式のカラーを代入した、そのカラーＦ配列のインデックスを取得して、これをファイル名に付けて、ファイルを作成します。この様なファイル名の付け方をする事で、後で、検索する時も検索しやすくなるわけです。次に、現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に１を記録します。２以上少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。この色用のネガティブ用画像データーを書き込む為のテキスト形式のファイルを作成します。前述のポジティブ用画像データーを書き込む為のテキスト形式のファイルの作成方法と同じ用に作成します。つまり、ＲＧＢ形式のカラーを代入した、そのカラーＦ配列のインデックスを取得して、これをファイル名に付けて、ファイルを作成します。但し、区別する為に、ポジティブ画像用データーを書き込む為のファイルとは異なる拡張子を付けて作成し、現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合で、ネガティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に０を記録します。２以上少ない場合で、ネガティブ画像用データーを書き込む為のファイルの場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、１を記録して、最後に０を記録します。そうして、この色以外の画像用データーを書き込んだファイルがある場合、つまり、Ｆ確認変数が２以上だった場合は、この色以外のファイルを全て開きます。ポジティブ画像用データーを書き込む為のファイルの場合は、ファイル末尾に、０を記録し、ネガティブ画像用データーを書き込む為のファイルの場合は、ファイル末尾に、１を記録します。カラーＦ配列に同じＲＧＢ色があった場合は、同じ色のＲＧＢ形式の色が代入されたカラーＦ配列のインデックスを取得して、それを基に、既に作成してあるインデックスを付したファイルを探し出します。探し出したファイルに書き込まれたデーター数を検査し、現在の画素数と比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。現在の画素数よりも書き込まれたデーター数が１少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に１を記録します。ネガティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に０を記録します。２以上少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。ネガティブ画像用データーを書き込む為のファイルの場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、１を記録して、最後に０を記録します。そうして、この色以外の画像用データーを書き込んだファイルがある場合、つまり、Ｆ確認変数が２以上だった場合は、この色以外のファイルを全て開きます。ポジティブ画像用データーを書き込む為のファイルの場合は、ファイル末尾に、０を記録し、ネガティブ画像用データーを書き込む為のファイルの場合は、ファイル末尾に、１を記録します。【００２３】この工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチします。完了すれば、色ごとに分けられた０と１で構成された画像用テキストファイルが出来上がります。【００２４】（３）数色分の配列を使用し、その配列数を超えた場合にファイルを作成する場合で、ポジティブ画像だけの場合【００２５】まず、予定した数色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＨ配列とします。ここに、一次元配列と書きましたが、これも、２次元配列、３次元配列、４次元配列、以降次元数を無限大まで増幅する事で違う書き方として、書くことも可能です。それと、このカラーＨ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｈ確認変数とします。そうして、数色分の一次元配列を作成します。この一次元配列に画像用データーを書き込みます。つまり、数色分とは、プログラマーが何色かを高速化したいと考えて、予定した色の数であります。つまり、３色までなら高速処理できる様にするとか、１２色までなら高速処理できる様にするとかをプログラマーが任意に決定して、作成するわけです。従って、５色なら５個、１０色なら１０個の配列を作成します。説明の都合上、仮称、カラー１配列、カラー２配列、カラー３配列といった具合に番号を付した名称とし、この配列のグループまたは、一個の配列をカラー配列と仮称します。このカラー配列の数を超えた場合、ファイルを作成します。画素数分のサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＦ配列とします。それと、このカラーＦ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｆ確認変数とします。画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とします。また、カラーＨ配列の最初にＲＧＢ形式のカラーを代入したものをカラー１配列と対応させて、これを一対とし、カラーＨ配列の二番目にＲＧＢ形式のカラーを代入したものをカラー２配列と対応させて、これを一対とし、カラーＨ配列の三番目にＲＧＢ形式のカラーを代入したものをカラー３配列と対応させて、これを一対とし、順次、同じように対にしていきます。この様に配列と配列を対にする事で、配列インデックスの０番に代入したデーターは、カラー１配列のものであるという様になり、場合分けでの処理が可能になります。つまり、カラーＨ配列の何番目に代入されたデーターなのかを調べるか、または、カラーＨ配列のインデックスを取得する事で、カラー１配列なのか、カラー２配列なのか、カラー３配列なのか、カラー４配列なのか、を探し出す事ができます。【００２６】次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませます。画像の最初から最後まで画素をサーチし以下の処理を行います。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。画素単位でその画素が何色なのかを確認します。Ｈ確認変数を調べます。０だった場合は、まだカラー配列が作られていない事を意味します。つまり、Ｈ確認変数が０だった場合は、最初の色であるという事になります。最初の色は、新規の色ですので、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入します。そうして、Ｈ確認変数に１を加算します。Ｈ確認変数に１を加算する事でカラーＨ配列ＲＧＢ形式のデーターが幾つ代入されているかが確認できるわけです。とはいっても、カラーＨ配列にＲＧＢ形式のデーターが幾つ代入されているかを調べる方法は、他にもあります。通常の配列要素数の検査方法を行う事でも可能であります。ポジティブ画像用のデーターとして、カラー１配列に１を代入します。【００２７】Ｈ確認変数が１以上でＨ確認変数がカラー配列の色数よりも少ない場合は、既に、ポジティブ画像用のデーターが１色以上、カラー配列に記録されている事を意味していますので、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、同じ色以外のカラー配列の末尾に、０を代入します。同じ色が無かった場合は、新規の色であるという事になりますので、新たにデーターを作成します。サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、Ｈ確認変数に、１を加算します。カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、現在の画素数とその色に相当するカラー配列に代入されたデーター数とを比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。サーチしている現在の画素数よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合と２以上少ない場合とに分岐します。サーチしている現在の画素数よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合は、カラー配列の末尾に、ポジティブ画像用のデーターとして、１を記録します。サーチしている現在の画素数よりもその色に相当するカラー配列に代入されたデーター数が２以上少ない場合は、現在の画素数から１を減算した回数だけ、カラー配列の末尾に、ポジティブ画像用のデーターとして、０を記録して、最後に１を記録します。次に、その他のカラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入します。【００２８】Ｈ確認変数がカラー配列の色数以上の場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、同じ色以外のカラー配列の末尾に、０を代入します。同じ色が無かった場合は、全てのカラー配列の末尾に、０を代入します。次に、Ｆ確認変数を参照します。Ｆ確認変数が０であった場合と１以上だった場合とに分岐します。Ｆ確認変数が０であった場合は、ポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを作成します。このファイルは、番号を付けて作成します。このファイルの番号は、色ごとに対応した番号とします。つまり、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスを付したファイルを作成します。ここで、カラーＦ配列にＲＧＢ形式のデーターが幾つ代入されているかを取得してファイルに番号を付ける事も可能です。また、技術的には、番号ではなく、アルファベットなどにする事もできます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に１を記録します。２以上少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。次に、Ｆ確認変数に１を加算します。【００２９】Ｆ確認変数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査します。カラーＦ配列に同じＲＧＢ色が無い場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入して、新規にポジティブ画像用データーを書き込む為のテキスト形式のファイルを作成します。次に、Ｆ確認変数に１を加算します。当然、このファイルも前述のファイルと同じ様にＲＧＢ形式のカラーを代入した、そのカラーＦ配列のインデックスを取得して、これをファイル名に付けて、ファイルを作成します。この様なファイル名の付け方をする事で、後で、検索する時も検索しやすくなるわけです。書き込まれたデーター数を調べて、サーチしている現在の画素数と比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。現在の画素数よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録します。２以上少ない場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。次に、カラーＨ配列に記録されている全てのカラー型の色に相当するカラー配列の末尾に、０を記録します。カラーＦ配列に同じＲＧＢ色があった場合は、その色に相当するカラー配列の末尾に１を代入します。次に、カラーＨ配列に記録されている全てのカラー型の色に相当するカラー配列の末尾に、０を記録します。【００３０】この工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチします。完了すれば、色ごとに分けられた０と１で構成された画像用テキストファイルと画像用配列が出来上がります。【００３１】（４）数色分の配列を使用し、その配列数を超えた場合にファイルを作成する場合で、ネガティブ画像用データーも作成する場合【００３２】まず、予定した数色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＨ配列とします。ここに、一次元配列と書きましたが、これも、２次元配列、３次元配列、４次元配列、以降次元数を無限大まで増幅する事で違う書き方として、書くことも可能です。それと、このカラーＨ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｈ確認変数とします。そうして、数色分の一次元配列を作成します。この一次元配列に画像用データーを書き込みます。この一次元配列は、ポジティブ画像用データーとネガティブ画像用データーとの二種類分作成します。つまり、数色分とは、プログラマーが何色かを高速化したいと考えて、予定した色の数であります。つまり、３色までなら高速処理できる様にするとか、１２色までなら高速処理できる様にするとかをプログラマーが任意に決定して、作成するわけです。従って、ポジティブ画像用データーとネガティブ画像用データーとの二種類分ですから、５色なら１０個、１０色なら２０個の配列を作成します。説明の都合上、仮称、ポジティブ画像用データーとネガティブ画像用データーとの区別をせずに、カラー１配列、カラー２配列、カラー３配列といった具合に番号を付した名称とし、この配列のグループまたは、一個の配列をカラー配列と仮称します。このカラー配列の数を超えた場合、ファイルを作成します。画素数分のサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＦ配列とします。それと、このカラーＦ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｆ確認変数とします。画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とします。また、カラーＨ配列の最初にＲＧＢ形式のカラーを代入したものをカラー１配列と対応させて、これを一対とし、カラーＨ配列の二番目にＲＧＢ形式のカラーを代入したものをカラー２配列と対応させて、これを一対とし、カラーＨ配列の三番目にＲＧＢ形式のカラーを代入したものをカラー３配列と対応させて、これを一対とし、順次、同じように対にしていきます。この様に配列と配列を対にする事で、配列インデックスの０番に代入したデーターは、カラー１配列のものであるという様になり、場合分けでの処理が可能になります。つまり、カラーＨ配列の何番目に代入されたデーターなのかを調べるか、または、カラーＨ配列のインデックスを取得する事で、カラー１配列なのか、カラー２配列なのか、カラー３配列なのか、カラー４配列なのか、を探し出す事ができます。【００３３】次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませます。画像の最初から最後まで画素をサーチし以下の処理を行います。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。画素単位でその画素が何色なのかを確認します。Ｈ確認変数を調べます。０だった場合は、まだカラー配列が作られていない事を意味します。つまり、Ｈ確認変数が０だった場合は、最初の色であるという事になります。最初の色は、新規の色ですので、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入します。そうして、Ｈ確認変数に１を加算します。Ｈ確認変数に１を加算する事でカラーＨ配列ＲＧＢ形式のデーターが幾つ代入されているかが確認できるわけです。とはいっても、カラーＨ配列にＲＧＢ形式のデーターが幾つ代入されているかを調べる方法は、他にもあります。通常の配列要素数の検査方法を行う事でも可能であります。ポジティブ画像用のデーターを代入する為のカラー１配列に１を代入します。次に、ネガティブ画像用のデーターを代入する為のカラー１配列に０を代入します。【００３４】Ｈ確認変数が１以上でＨ確認変数がカラー配列の色数よりも少ない場合は、既に、ポジティブ画像用のデーターとネガティブ画像用データーとが１色以上、カラー配列に記録されている事を意味していますので、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、その色に相当するポジティブ画像用データー用のカラー配列の末尾に、１を代入し、ネガティブ画像用データー用のカラー配列の末尾に、０を代入します。次に、同じ色以外のポジティブ画像用データー用のカラー配列の末尾に、０を代入し、ネガティブ画像用データー用のカラー配列の末尾に、１を代入します。同じ色が無かった場合は、新規の色であるという事になりますので、新たにデーターを作成します。サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、Ｈ確認変数１を加算します。次に、ポジティブ画像用データー用のカラー配列とネガティブ画像用データー用のカラー配列のデーター数を調べます。ポジティブ画像用データー用のカラー配列の場合は、サーチした画素数よりもその色に相当するカラー配列に代入されたデーター数が２以上少ないならば、現在の画素数から１を減算した回数だけ、カラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、その後で、末尾に１を代入します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。ネガティブ画像用データー用のカラー配列の場合は、サーチした画素数よりもその色に相当するカラー配列に代入されたデーター数が２以上少ないならば、現在の画素数から１を減算した回数だけ、カラー配列の末尾に、ネガティブ画像用のデーターとして、１を代入し、その後で、末尾に０を代入します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。次に、その他の色の全てのカラー配列の処理を行います。ポジティブ画像用データー用のカラー配列の場合は、末尾に、０を代入し、ネガティブ画像用データー用のカラー配列の場合は、末尾に、１を代入します。【００３５】Ｈ確認変数がカラー配列の色数以上の場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、その色に相当するポジティブ画像用のデーター用のカラー配列の末尾に、１を代入し、同じ色以外のポジティブ画像用のデーター用のカラー配列の末尾に、０を代入します。その色に相当するネガティブ画像用のデーター用のカラー配列の末尾に、０を代入し、同じ色以外のネガティブ画像用のデーター用のカラー配列の末尾に、１を代入します。同じ色が無かった場合は、その他の色の全てのカラー配列の処理を行います。ポジティブ画像用データー用のカラー配列の場合は、末尾に、０を代入し、ネガティブ画像用データー用のカラー配列の場合は、末尾に、１を代入します。次に、Ｆ確認変数を参照します。Ｆ確認変数が０であった場合と１以上だった場合とに分岐します。【００３６】Ｆ確認変数が０であった場合は、新規にポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを作成し、Ｆ確認変数に１を加算します。このファイルは、番号を付けて作成します。このファイルの番号は、色ごとに対応した番号とします。つまり、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスを付したファイルを作成します。ここで、カラーＦ配列にＲＧＢ形式のデーターが幾つ代入されているかを取得してファイルに番号を付ける事も可能です。また、技術的には、番号ではなく、アルファベットなどにする事もできます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録します。２以上少ない場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。【００３７】次にネガティブ用画像データーを書き込む為のテキスト形式のファイルを作成します。ポジティブ画像用のデーターを書き込む為のテキスト形式のファイルと同じ様に作成します。つまり、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスを付したファイルを作成するわけです。しかしながら、これでは、ネガティブ用画像データーを書き込む為のテキスト形式のファイルとポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを区別できません。どちらか一方のファイルの拡張子を違うものにする事で区別する事ができます。従って、ここで作成しているのは、ネガティブ用画像データーを書き込む為のテキスト形式のファイルですので、ポジティブ画像用のデーターを書き込む為のテキスト形式のファイルに使用している拡張子とは違う拡張子を付けます。
拡張子を違うものにする事によって、ファイルの種類を区別する方法とは別の方法もあります。ファイルの名称を違うものにする事でも区別する事ができます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合で、ネガティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に０を記録します。２以上少ない場合で、ネガティブ画像用データーを書き込む為のファイルの場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、１を記録して、最後に０を記録します。【００３８】Ｆ確認変数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査します。新規の色であった場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入して、新規にポジティブ画像用データーを書き込む為のテキスト形式のファイルを作成します。次に、Ｆ確認変数に１を加算します。当然、このファイルも前述のファイルと同じ様にＲＧＢ形式のカラーを代入した、そのカラーＦ配列のインデックスを取得して、これをファイル名に付けて、ファイルを作成します。この様なファイル名の付け方をする事で、後で、検索する時も検索しやすくなるわけです。書き込まれたデーターを調べて、現在の画素数と比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。現在の画素数よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録します。２以上少ない場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。次に、この色以外のポジティブ画像用データーを書き込んだファイルを全て開き、０を記録します。次に、この色用のネガティブ用画像データーを書き込む為のテキスト形式のファイルを作成します。前述のポジティブ用画像データーを書き込む為のテキスト形式のファイルの作成方法と同じ用に作成します。つまり、ＲＧＢ形式のカラーを代入した、そのカラーＦ配列のインデックスを取得して、これをファイル名に付けて、ファイルを作成します。但し、区別する為に、ポジティブ画像用データーを書き込む為のファイルとは異なる拡張子を付けて作成します。次に、書き込まれたデーターを調べて、画素数と比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。現在の画素数よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に０を記録します。２以上少ない場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、１を記録して、最後に０を記録します。次に、この色以外のネガティブ画像用データーを書き込んだファイルを全て開き１を記録します。カラーＦ配列に同じＲＧＢ色があった場合は、同じ色のＲＧＢ形式の色が代入されたカラーＦ配列のインデックスを取得して、それを基に、既に作成してあるインデックスを付したファイルを探し出し、このファイルに書き込まれたデーター数を確認し、現在の画素数と比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。現在の画素数よりも書き込まれたデーター数が１少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に１を記録します。ネガティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に０を記録します。２以上少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。ネガティブ画像用データーを書き込む為のファイルの場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、１を記録して、最後に０を記録します。次に、この色以外の画像用データーを書き込んだファイルがある場合、つまり、Ｆ確認変数が２以上だった場合は、この色以外のファイルを全て開きます。ホジティブ画像用データーを書き込む為のファイルの場合は、ファイル末尾に、０を記録し、ネガティブ画像用データーを書き込む為のファイルの場合は、ファイル末尾に、１を記録します。【００３９】この工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチします。完了すれば、色ごとに分けられた０と１で構成された画像用テキストファイルと画像用配列が出来上がります。【００４０】（５）特定な色を特別な色として、特別に配列を使用し、特定な色以外のその他の色用として数色分の配列を使用し、特定な色以外のその他の色用として数色分の配列数を超えた場合にファイルを作成する場合で、ポジティブ画像だけの場合【００４１】特定な色を特別な色として、特別に配列を使用する事によって、高速化を図ります。特定な色を特別な色として、１色から数色分の配列を使用する為に、１色から数色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列を作成します。特定の特別な色と設定した色を説明の都合上、Ｔ１カラー、Ｔ２カラー、Ｔ３カラーなどの様に呼び、１色から数色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列をＴ１カラー配列、Ｔ２カラー配列、Ｔ３カラー配列などの様に呼び、その配列のグループもしくは、一個の配列をＴカラー配列と呼びます。このＴカラー配列には、予定した色ごとにデーターを格納します。つまり、黒色なら、Ｔ１カラーにデーターを入れるという具合に予め決めておきます。それと、このＴカラー配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｔ確認変数とします。特定した色ごとに、このＴ確認変数を作成します。（例えば、黒色と白色を特定の色として、高速化する対象とします。この場合は、２色分ですので２個の特別な名称の画素数分のサイズのカラー型の一次元配列を作成します。）次に、予定した数色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＨ配列とします。ここに、一次元配列と書きましたが、これも、２次元配列、３次元配列、４次元配列、以降次元数を無限大まで増幅する事で違う書き方として、書くことも可能です。それと、このカラーＨ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｈ確認変数とします。そうして、数色分の一次元配列を作成します。この一次元配列に画像用データーを書き込みます。つまり、数色分とは、プログラマーが何色かを高速化したいと考えて、予定した色の数であります。つまり、３色までなら高速処理できる様にするとか、１２色までなら高速処理できる様にするとかをプログラマーが任意に決定して、作成するわけです。従って、５色なら５個、１０色なら１０個の配列を作成します。説明の都合上、仮称、カラー１配列、カラー２配列、カラー３配列といった具合に番号を付した名称とし、この配列のグループまたは、一個の配列をカラー配列と仮称します。このカラー配列の数を超えた場合、ファイルを作成します。画素数分のサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＦ配列とします。それと、このカラーＦ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｆ確認変数とします。画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とします。また、カラーＨ配列の最初にＲＧＢ形式のカラーを代入したものをカラー１配列と対応させて、これを一対とし、カラーＨ配列の二番目にＲＧＢ形式のカラーを代入したものをカラー２配列と対応させて、これを一対とし、カラーＨ配列の三番目にＲＧＢ形式のカラーを代入したものをカラー３配列と対応させて、これを一対とし、順次、同じように対にしていきます。この様に配列と配列を対にする事で、配列インデックスの０番に代入したデーターは、カラー１配列のものであるという様になり、場合分けでの処理が可能になります。つまり、カラーＨ配列の何番目に代入されたデーターなのかを調べるか、または、カラーＨ配列のインデックスを取得する事で、カラー１配列なのか、カラー２配列なのか、カラー３配列なのか、カラー４配列なのか、を探し出す事ができます。【００４２】次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませます。画像の最初から最後まで画素をサーチし以下の処理を行います。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。画素単位でその画素が何色なのかを確認します。予定していた特定の特別な色かどうかを調べます。予定していた特定の特別な色の場合と予定していた特定の特別な色ではなかった場合とに分岐します。予定していた特定の特別な色の場合は、その色に相当する配列のデーター数とサーチした画素数を比較して、１少ない場合と２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。１少ない場合は、ポジティブ用画像データーとして、その特定の特別な色に相当する配列の末尾に、１を代入し、この色用のＴ確認変数に１を代入します。２以上少ない場合は、サーチした画素数よりもその色に相当するＴカラー配列に代入されたデーター数が２以上少ないならば、現在の画素数から１を減算した回数だけ、Ｔカラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、その後で、末尾に１を代入し、この色用のＴ確認変数に１を代入します。次に、その他の予定していた特定の特別な色用のＴ確認変数を調べて、１であった場合と０であった場合とに分岐します。０であった場合は、何もしません。１であった場合は、その色に相当するポジティブ画像のデーター用のＴカラー配列の末尾に、０を代入します。予定していた特定の特別な色ではなかった場合は、全ての予定していた特定の特別な色用のＴ確認変数を調べて、１であった場合と０であった場合とに分岐します。０であった場合は、何もしません。１であった場合は、その色に相当するポジティブ画像のデーター用のＴカラー配列の末尾に、０を代入します。【００４３】次に、Ｈ確認変数を調べます。０だった場合は、まだカラー配列が作られていない事を意味します。つまり、Ｈ確認変数が０だった場合は、予定した数色分の色の最初の色であるという事になります。最初の色は、新規の色ですので、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入します。そうして、Ｈ確認変数に１を加算します。Ｈ確認変数に１を加算する事でカラーＨ配列ＲＧＢ形式のデーターが幾つ代入されているかが確認できるわけです。とはいっても、カラーＨ配列にＲＧＢ形式のデーターが幾つ代入されているかを調べる方法は、他にもあります。通常の配列要素数の検査方法を行う事でも可能であります。その色に相当するカラー配列のデーター数とサーチした画素数を比較して、１少ない場合と２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。１少ない場合は、ポジティブ用画像データーとして、カラー配列の末尾に、１を代入し、Ｈ確認変数に１を代入します。２以上少ない場合は、サーチした画素数よりもその色に相当するカラー配列に代入されたデーター数が２以上少ないならば、現在の画素数から１を減算した回数だけ、カラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、その後で、末尾に１を代入し、Ｈ確認変数に１を代入します。【００４４】Ｈ確認変数が１以上でＨ確認変数がカラー配列の色数よりも少ない場合は、既に、ポジティブ画像用のデーターが１色以上、カラー配列に記録されている事を意味していますので、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、同じ色以外のカラー配列で既にデーターが記録されているカラー配列の末尾に、０を代入します。同じ色が無かった場合は、新規の色であるという事になりますので、新たにデーターを作成します。サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、Ｈ確認変数に、１を加算します。次に、現在の画素数とその色に相当するカラー配列に代入されたデーター数を比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。サーチした画素数よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合と２以上少ない場合とに分岐します。１少ない場合は、その色に相当するカラー配列の末尾に、１を代入します。２以上少ない場合は、現在の画素数から１を減算した回数だけ、カラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、その後で、末尾に、１を代入します。次に、既にデーターが記録されているその他のカラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入します。【００４５】Ｈ確認変数がカラー配列の色数以上の場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、同じ色以外のカラー配列の末尾に、０を代入します。同じ色が無かった場合は、全てのカラー配列の末尾に、０を代入します。次に、Ｆ確認変数を参照します。Ｆ確認変数が０であった場合と１以上だった場合とに分岐します。Ｆ確認変数が０であった場合は、ポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを作成します。このファイルは、番号を付けて作成します。このファイルの番号は、色ごとに対応した番号とします。つまり、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスを付したファイルを作成します。ここで、カラーＦ配列にＲＧＢ形式のデーターが幾つ代入されているかを取得してファイルに番号を付ける事も可能です。また、技術的には、番号ではなく、アルファベットなどにする事もできます。次に、現在の画素数と新規に作成したファイルに記録されたデーター数を比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。サーチした画素数よりも新規に作成したファイルに記録されたデーター数が１少ない場合と２以上少ない場合とに分岐します。１少ない場合は、新規に作成したファイルの末尾に、１を代入します。２以上少ない場合は、現在の画素数から１を減算した回数だけ、新規に作成したファイルの末尾に、ポジティブ画像用のデーターとして、０を代入し、その後で、末尾に、１を代入します。次に、Ｆ確認変数に１を加算します。【００４６】Ｆ確認変数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査します。カラーＦ配列に同じＲＧＢ色が無い場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入して、新規にポジティブ画像用データーを書き込む為のテキスト形式のファイルを作成します。次に、Ｆ確認変数に１を加算します。当然、このファイルも前述のファイルと同じ様にＲＧＢ形式のカラーを代入した、そのカラーＦ配列のインデックスを取得して、これをファイル名に付けて、ファイルを作成します。この様なファイル名の付け方をする事で、後で、検索する時も検索しやすくなるわけです。書き込まれたデーターを調べて、現在の画素数と比較し、現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録します。２以上少ない場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。次に、カラーＨ配列に記録されている全てのカラー型の色に相当するカラー配列の末尾に、０を記録します。カラーＦ配列に同じＲＧＢ色があった場合は、その色に相当するカラー配列の末尾に１を代入します。次に、カラーＨ配列に記録されている全てのカラー型の色に相当するカラー配列の末尾に、０を記録します。【００４７】この工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチします。完了すれば、色ごとに分けられた０と１で構成された画像用テキストファイルと画像用配列が出来上がります。【００４８】（６）特定な色を特別な色として、特別に配列を使用し、特定な色以外のその他の色用として数色分の配列を使用し、特定な色以外のその他の色用として数色分の配列数を超えた場合にファイルを作成する場合で、ネガティブ画像用データーも作成する場合【００４９】特定な色を特別な色として、特別に配列を使用する事によって、高速化を図ります。特定な色を特別な色として、１色から数色分の配列を使用する為に、１色から数色分のＲＧＢ形式のデーターを代入できるサイズの一次元配列を作成します。ポジティブ画像用のデーター用の配列とネガティブ画像用のデーター用の配列の二種類を作成します。従って、配列の個数は、特別な色の色数の二倍になります。特定な色を特別な色を説明の都合上、Ｔ１カラー、Ｔ２カラー、Ｔ３カラーなどの様に呼び、１色から数色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列をＴ１カラー配列、Ｔ２カラー配列、Ｔ３カラー配列などの様に呼び、その配列のグループもしくは、一個の配列をＴカラー配列と呼びます。このＴカラー配列には、予定した色ごとにデーターを格納します。つまり、黒色なら、Ｔ１カラーにデーターを入れるという具合に予め決めておきます。それと、このＴカラー配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｔ確認変数とします。特定した色ごとに、このＴ確認変数を作成します。（例えば、黒色と白色を特定の色として、高速化する対象とします。この場合は、２色分ですので４個の特別な名称の画素数分のサイズのカラー型の一次元配列を作成します。）次に、予定した数色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＨ配列とします。ここに、一次元配列と書きましたが、これも、２次元配列、３次元配列、４次元配列、以降次元数を無限大まで増幅する事で違う書き方として、書くことも可能です。それと、このカラーＨ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｈ確認変数とします。そうして、数色分の一次元配列を作成します。この一次元配列に画像用データーを書き込みます。この一次元配列は、ポジティブ画像用データーとネガティブ画像用データーとの二種類分作成します。つまり、数色分とは、プログラマーが何色かを高速化したいと考えて、予定した色の数であります。つまり、３色までなら高速処理できる様にするとか、１２色までなら高速処理できる様にするとかをプログラマーが任意に決定して、作成するわけです。従って、ポジティブ画像用データーとネガティブ画像用データーとの二種類分ですから、５色なら１０個、１０色なら２０個の配列を作成します。説明の都合上、仮称、ポジティブ画像用データーとネガティブ画像用データーとの区別をせずに、カラー１配列、カラー２配列、カラー３配列といった具合に番号を付した名称とし、この配列のグループまたは、一個の配列をカラー配列と仮称します。このカラー配列の数を超えた場合、ファイルを作成します。画素数分のサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＦ配列とします。それと、このカラーＦ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｆ確認変数とします。画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とします。また、カラーＨ配列の最初にＲＧＢ形式のカラーを代入したものをカラー１配列と対応させて、これを一対とし、カラーＨ配列の二番目にＲＧＢ形式のカラーを代入したものをカラー２配列と対応させて、これを一対とし、カラーＨ配列の三番目にＲＧＢ形式のカラーを代入したものをカラー３配列と対応させて、これを一対とし、順次、同じように対にしていきます。この様に配列と配列を対にする事で、配列インデックスの０番に代入したデーターは、カラー１配列のものであるという様になり、場合分けでの処理が可能になります。つまり、カラーＨ配列の何番目に代入されたデーターなのかを調べるか、または、カラーＨ配列のインデックスを取得する事で、カラー１配列なのか、カラー２配列なのか、カラー３配列なのか、カラー４配列なのか、を探し出す事ができます。【００５０】次に、ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませます。画像の最初から最後まで画素をサーチし以下の処理を行います。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。画素単位でその画素が何色なのかを確認します。予定していた特定の特別な色かどうかを調べます。予定していた特定の特別な色の場合と予定していた特定の特別な色ではなかった場合とに分岐します。予定していた特定の特別な色の場合は、その色に相当する配列のデーター数とサーチした現在の画素数を比較して、１少ない場合と２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。１少ない場合は、その特定の特別な色に相当するポジティブ画像データー用のＴカラー配列の末尾に、１を代入し、この色用のＴ確認変数に１を代入します。その特定の特別な色に相当するネガティブ画像データー用のＴカラー配列の末尾に、０を代入します。２以上少ない場合は、サーチした現在の画素数よりもその色に相当するＴカラー配列に代入されたデーター数が２以上少ないならば、現在の画素数から１を減算した回数だけ、ポジティブ画像のデーター用のＴカラー配列の末尾に、０を代入し、その後で、末尾に１を代入し、この色用のＴ確認変数に１を加算します。サーチした現在の画素数よりもその色に相当するＴカラー配列に代入されたデーター数が２以上少ないならば、現在の画素数から１を減算した回数だけ、ネガティブ画像のデーター用のＴカラー配列の末尾に、１を代入し、その後で、末尾に０を代入します。次に、その他の特別な色用のＴ確認変数を調べて、１であった場合と０であった場合とに分岐します。０であった場合は、何もしません。１であった場合は、その色に相当するポジティブ画像のデーター用のＴカラー配列の末尾に、０を代入し、その色に相当するネガティブ画像のデーター用のＴカラー配列の末尾に、１を代入します。予定していた特定の特別な色ではなかった場合は、全ての予定していた特定の特別な色用のＴ確認変数を調べて、１であった場合と０であった場合とに分岐します。０であった場合は、何もしません。１であった場合は、その色に相当するポジティブ画像のデーター用のＴカラー配列の末尾に、０を代入し、その色に相当するネガティブ画像のデーター用のＴカラー配列の末尾に、１を代入します。【００５１】次に、Ｈ確認変数を調べます。０だった場合は、まだカラー配列が作られていない事を意味します。つまり、Ｈ確認変数が０だった場合は、最初の色であるという事になります。最初の色は、新規の色ですので、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入します。そうして、Ｈ確認変数に１を加算します。Ｈ確認変数に１を加算する事でカラーＨ配列ＲＧＢ形式のデーターが幾つ代入されているかが確認できるわけです。とはいっても、カラーＨ配列にＲＧＢ形式のデーターが幾つ代入されているかを調べる方法は、他にもあります。通常の配列要素数の検査方法を行う事でも可能であります。その色に相当するポジティブ用画像データー用のカラー配列のデーター数とサーチした画素数を比較して、１少ない場合と２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。１少ない場合は、ポジティブ用画像データー用のカラー配列の末尾に、１を代入し、Ｈ確認変数に１を代入します。２以上少ない場合は、サーチした画素数よりもその色に相当するポジティブ用画像データー用のカラー配列に代入されたデーター数が２以上少ないならば、現在の画素数から１を減算した回数だけ、ポジティブ用画像データー用のカラー配列の末尾に、０を代入し、その後で、末尾に１を代入し、Ｈ確認変数に１を代入します。その色に相当するネガティブ用画像データー用のカラー配列のデーター数とサーチした画素数を比較して、１少ない場合と２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。１少ない場合は、ネガティブ用画像データー用のカラー配列の末尾に、０を代入し、２以上少ない場合は、現在の画素数から１を減算した回数だけ、ネガティブ用画像データー用のカラー配列の末尾に、１を代入し、その後で、末尾に０を代入します。【００５２】Ｈ確認変数が１以上でＨ確認変数がカラー配列の色数よりも少ない場合は、既に、ポジティブ画像用のデーターとネガティブ画像用データーとが１色以上、カラー配列に記録されている事を意味していますので、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、その色に相当するポジティブ画像用データー用のカラー配列の末尾に、１を代入し、ネガティブ画像用データー用のカラー配列の末尾に、０を代入します。同じ色以外のポジティブ画像用データー用のカラー配列の末尾に、０を代入し、ネガティブ画像用データー用のカラー配列の末尾に、１を代入します。同じ色が無かった場合は、新規の色であるという事になりますので、新たにデーターを作成します。サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、Ｈ確認変数１を加算します。次に、ポジティブ画像用データー用のカラー配列とネガティブ画像用データー用のカラー配列のデーター数を調べます。ポジティブ画像用データー用のカラー配列の場合は、サーチした現在の画素数よりもその色に相当するカラー配列に代入されたデーター数が２以上少ないならば、現在の画素数から１を減算した回数だけ、カラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入し、その後で、末尾に１を代入します。ネガティブ画像用データー用のカラー配列の場合は、サーチした現在の画素数よりもその色に相当するカラー配列に代入されたデーター数が２以上少ないならば、現在の画素数から１を減算した回数だけ、カラー配列の末尾に、ネガティブ画像用のデーターとして、１を代入し、その後で、末尾に０を代入します。次に、その他の色の全てのカラー配列の処理を行います。ポジティブ画像用データー用のカラー配列の場合は、末尾に、０を代入し、ネガティブ画像用データー用のカラー配列の場合は、末尾に、１を代入します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。【００５３】Ｈ確認変数がカラー配列の色数以上の場合は、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、その色に相当するポジティブ画像用のデーター用のカラー配列の末尾に、１を代入し、同じ色以外のポジティブ画像用のデーター用のカラー配列の末尾に、０を代入します。その色に相当するネガティブ画像用のデーター用のカラー配列の末尾に、０を代入し、同じ色以外のネガティブ画像用のデーター用のカラー配列の末尾に、１を代入します。同じ色が無かった場合は、全てのポジティブ画像用のデーター用のカラー配列の末尾に、０を代入し、全てのネガティブ画像用のデーター用のカラー配列の末尾に、１を代入します。次に、Ｆ確認変数を参照します。Ｆ確認変数が０であった場合と１以上だった場合とに分岐します。【００５４】Ｆ確認変数が０であった場合は、新規にポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを作成し、Ｆ確認変数に１を加算します。このファイルは、番号を付けて作成します。このファイルの番号は、色ごとに対応した番号とします。つまり、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスを付したファイルを作成します。ここで、カラーＦ配列にＲＧＢ形式のデーターが幾つ代入されているかを取得してファイルに番号を付ける事も可能です。また、技術的には、番号ではなく、アルファベットなどにする事もできます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に１を記録します。２以上少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。次に、Ｆ確認変数に１を加算します。【００５５】次にネガティブ用画像データーを書き込む為のテキスト形式のファイルを作成します。ポジティブ画像用のデーターを書き込む為のテキスト形式のファイルと同じ様に作成します。つまり、カラーＦ配列の最初の配列のインデックスを取得して、そのインデックスを付したファイルを作成するわけです。しかしながら、これでは、ネガティブ用画像データーを書き込む為のテキスト形式のファイルとポジティブ画像用のデーターを書き込む為のテキスト形式のファイルを区別できません。どちらか一方のファイルの拡張子を違うものにする事で区別する事ができます。従って、ここで作成しているのは、ネガティブ用画像データーを書き込む為のテキスト形式のファイルですので、ポジティブ画像用のデーターを書き込む為のテキスト形式のファイルに使用している拡張子とは違う拡張子を付けます。拡張子を違うものにする事によって、ファイルの種類を区別する方法とは別の方法もあります。ファイルの名称を違うものにする事でも区別する事ができます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合で、ネガティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に０を記録します。２以上少ない場合で、ネガティブ画像用データーを書き込む為のファイルの場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、１を記録して、最後に０を記録します。【００５６】Ｆ確認変数が１以上だった場合は、カラーＦ配列に同じＲＧＢ色があるか無いかを検査します。新規の色であった場合は、カラーＦ配列の末尾にＲＧＢ形式のカラーを代入して、新規にポジティブ画像用データーを書き込む為のテキスト形式のファイルを作成します。次に、Ｆ確認変数に１を加算します。当然、このファイルも前述のファイルと同じ様にＲＧＢ形式のカラーを代入した、そのカラーＦ配列のインデックスを取得して、これをファイル名に付けて、ファイルを作成します。この様なファイル名の付け方をする事で、後で、検索する時も検索しやすくなるわけです。書き込まれたデーター数を調べて、現在の画素数と比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。現在の画素数よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に１を記録します。２以上少ない場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、０を記録して、最後に１を記録します。次に、この色以外のポジティブ画像用データーを書き込んだファイルを全て開き、０を記録します。この色用のネガティブ用画像データーを書き込む為のテキスト形式のファイルを作成します。前述のポジティブ用画像データーを書き込む為のテキスト形式のファイルの作成方法と同じ用に作成します。つまり、ＲＧＢ形式のカラーを代入した、そのカラーＦ配列のインデックスを取得して、これをファイル名に付けて、ファイルを作成します。但し、区別する為に、ポジティブ画像用データーを書き込む為のファイルとは異なる拡張子を付けて作成します。書き込まれたデーター数を調べて、現在の画素数と比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。現在の画素数よりも書き込まれたデーター数が１少ない場合は、ファイル末尾に０を記録します。２以上少ない場合は、このファイルの末尾に、現在の画素数から１を減算した回数だけ、１を記録して、最後に０を記録します。次に、この色以外のネガティブ画像用データーを書き込んだファイルを全て開き１を記録します。カラーＦ配列に同じＲＧＢ色があった場合は、同じ色のＲＧＢ形式の色が代入されたカラーＦ配列のインデックスを取得して、それを基に、既に作成してあるインデックスを付したファイルを探し出します。このファイルに書き込まれたデーター数を確認し、現在の画素数と比較します。サーチしている現在の画素数は、画素Ｎ変数を参照する事で取得できます。現在の画素数よりも書き込まれたデーター数が１少ない場合と、２以上少ない場合とに分岐します。現在の画素数よりも書き込まれたデーター数が１少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に１を記録します。ネガティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に０を記録します。２以上少ない場合で、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイルに書き込まれた末尾から、現在の画素数よりも１少ない分だけ、０を記録して、最後に１を記録します。ネガティブ画像用データーを書き込む為のファイルの場合は、このファイルに書き込まれた末尾から、現在の画素数よりも１少ない分だけ、１を記録して、最後に０を記録します。そうして、この色以外の画像用データーを書き込んだファイルがある場合、つまり、Ｆ確認変数が２以上だった場合は、この色以外のファイルを全て開きます。ホジティブ画像用データーを書き込む為のファイルの場合は、ファイル末尾に、０を記録し、ネガティブ画像用データーを書き込む為のファイルの場合は、ファイル末尾に、１を記録します。【００５７】この工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチします。完了すれば、色ごとに分けられた０と１で構成された画像用テキストファイルと画像用配列が出来上がります。【００５８】（７）画像に使われている色を全て調べて色数をカウントし、色数分の配列を作成する場合で、ポジティブ画像だけの場合【００５９】ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませます。読み込ませた画像の画素を最初から最後までサーチして、何色の色が使われているかを調べて、色数分の次元数で、画素数分のサイズの配列を作成し、その次元ごとに仮称、カラー１配列、カラー２配列、カラー３配列といった具合に番号を付した名称とし、この配列のグループまたは、一次元の配列をカラー配列と仮称します。次に、色数分サイズのＲＧＢ形式のデーターを格納する事が出来るカラー型の一次元配列を作成し、これを説明の都合上、カラーＨ配列と仮称し、このカラー型の配列にデーターを格納したかどうかを記録する為の変数を作成し、この変数を説明の都合上、Ｈ確認変数と仮称します。次に、画素数をカウントして、現在サーチしている画素が何番目の画素なのかを知る為の変数を作成し、この画素数をカウントする為の変数を画素Ｎ変数と仮称します。また、カラーＨ配列の最初にＲＧＢ形式のカラーを代入したものをカラー１配列と対応させて、これを一対とし、カラーＨ配列の二番目にＲＧＢ形式のカラーを代入したものをカラー２配列と対応させて、これを一対とし、カラーＨ配列の三番目にＲＧＢ形式のカラーを代入したものをカラー３配列と対応させて、これを一対とし、順次、同じように対にしていきます。この様に配列と配列を対にする事で、配列インデックスの０番に代入したデーターは、カラー１配列のものであるという様になり、場合分けでの処理が可能になります。つまり、カラーＨ配列の何番目に代入されたデーターなのかを調べるか、または、カラーＨ配列のインデックスを取得する事で、カラー１配列なのか、カラー２配列なのか、カラー３配列なのか、カラー４配列なのか、を探し出す事ができます。【００６０】次に、もう一度、画像の最初から最後まで画素をサーチし、画素ごとに以下の処理を行います。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。Ｈ確認変数を調べます。０だった場合は、まだカラー配列にデーターが代入されていない事を意味します。つまり、Ｈ確認変数が０だった場合は、最初の色であるという事になります。最初の色は、新規の色ですので、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入します。そうして、Ｈ確認変数に１を加算します。Ｈ確認変数に１を加算する事でカラーＨ配列ＲＧＢ形式のデーターが幾つ代入されているかが確認できるわけです。とはいっても、カラーＨ配列にＲＧＢ形式のデーターが幾つ代入されているかを調べる方法は、他にもあります。通常の配列要素数の検査方法を行う事でも可能であります。ポジティブ画像用のデーターとして、カラー配列に１を代入します。【００６１】Ｈ確認変数が１以上である場合は、既に、画像用のデーターが１色以上、カラー配列に記録されている事を意味していますので、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、同じ色以外のカラー配列の末尾に、０を代入します。同じ色が無かった場合は、新規の色であるという事になりますので、新たにデーターを作成します。サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、Ｈ確認変数１を加算します。カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、画素Ｎ変数とその色に相当するカラー配列に代入されたデーター数とを比較します。画素Ｎ変数よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合と、２以上少ない場合とに分岐します。画素Ｎ変数よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合は、カラー配列の末尾に、ポジティブ画像用のデーターとして、１を記録します。画素Ｎ変数よりもその色に相当するカラー配列に代入されたデーター数が２以上少ない場合は、現在の画素数から１を減算した回数だけ、カラー配列の末尾に、ポジティブ画像用のデーターとして、０を記録して、最後に１を記録します。次に、その他のカラー配列の末尾に、ポジティブ画像用のデーターとして、０を代入します。【００６２】この工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチします。完了すれば、色ごとに分けられた０と１で構成された画像用配列が出来上がります。【００６３】（８）画像に使われている色を全て調べて色数をカウントし、色数分の配列を作成する場合で、ネガティブ画像用データーも作成する場合【００６４】ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませます。読み込ませた画像の画素を最初から最後までサーチして、何色の色が使われているかを調べて、色数分の次元数で、画素数分のサイズの配列を作成し、その次元ごとに仮称、カラー１配列、カラー２配列、カラー３配列といった具合に番号を付した名称とし、この配列のグループまたは、一次元の配列をカラー配列と仮称します。このカラー配列は、ポジティブ画像用とネガティブ画像用との二種類作成します。次に、色数分サイズのＲＧＢ形式のデーターを格納する事が出来るカラー型の一次元配列を作成し、これを説明の都合上、カラーＨ配列と仮称し、このカラー型の配列にデーターを格納したかどうかを記録する為の変数を作成し、この変数を説明の都合上、Ｈ確認変数と仮称します。次に、画素数をカウントして、現在サーチしている画素が何番目の画素なのかを知る為の変数を作成し、この画素数をカウントする為の変数を画素Ｎ変数と仮称します。また、カラーＨ配列の最初にＲＧＢ形式のカラーを代入したものをカラー１配列と対応させて、これを一対とし、カラーＨ配列の二番目にＲＧＢ形式のカラーを代入したものをカラー２配列と対応させて、これを一対とし、カラーＨ配列の三番目にＲＧＢ形式のカラーを代入したものをカラー３配列と対応させて、これを一対とし、順次、同じように対にしていきます。この様に配列と配列を対にする事で、配列インデックスの０番に代入したデーターは、カラー１配列のものであるという様になり、場合分けでの処理が可能になります。つまり、カラーＨ配列の何番目に代入されたデーターなのかを調べるか、または、カラーＨ配列のインデックスを取得する事で、カラー１配列なのか、カラー２配列なのか、カラー３配列なのか、カラー４配列なのか、を探し出す事ができます。【００６５】次に、もう一度、画像の最初から最後まで画素をサーチし、画素ごとに以下の処理を行います。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。Ｈ確認変数を調べます。０だった場合は、まだカラー配列にデーターが代入されていない事を意味します。つまり、Ｈ確認変数が０だった場合は、最初の色であるという事になります。最初の色は、新規の色ですので、そのＲＧＢ形式の色をカラーＨ配列の最初にＲＧＢ形式のカラーを代入します。そうして、Ｈ確認変数に１を加算します。Ｈ確認変数に１を加算する事でカラーＨ配列ＲＧＢ形式のデーターが幾つ代入されているかが確認できるわけです。とはいっても、カラーＨ配列にＲＧＢ形式のデーターが幾つ代入されているかを調べる方法は、他にもあります。通常の配列要素数の検査方法を行う事でも可能であります。カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、ポジティブ画像用のデーターとして、ポジティブ画像用のカラー配列に１を代入し、ネガティブ画像用のデーターとして、ネガティブ画像用のカラー配列に０を代入します。【００６６】Ｈ確認変数が１以上である場合は、画像用のデーターと、ネガティブ画像用のデーターとが、既に、１色以上、両方のカラー配列にデーターが記録されている事を意味していますので、サーチした色が既に記録されているかどうかをカラーＨ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するカラー配列の末尾に、ポジティブ画像用のデーターとして、１を代入し、ネガティブ画像用のデーターとして、０を代入し、同じ色以外のポジティブ画像用のカラー配列の末尾に、０を代入し、ネガティブ画像用のカラー配列の末尾に、１を代入します。同じ色が無かった場合は、新規の色であるという事になりますので、新たにデーターを作成します。サーチした画素のカラー型のデーターをカラーＨ配列の末尾に代入し、Ｈ確認変数１を加算します。カラーＨ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、画素Ｎ変数とその色に相当するポジティブ画像用カラー配列または、ネガティブ画像用カラー配列のどちらか一方のカラー配列に代入されたデーター数とを比較します。画素Ｎ変数よりもその色に相当するカラー配列に代入されたデーター数が１少ない場合と、２以上少ない場合とに分岐します。１少ない場合は、ポジティブ画像用のカラー配列の末尾に、ポジティブ画像用のデーターとして、１を記録し、ネガティブ画像用のカラー配列の末尾に、ネガティブ画像用のデーターとして、０を記録します。２以上少ない場合は、現在の画素数から１を減算した回数だけ、ポジティブ画像用のカラー配列の末尾に、０を記録して、最後に１を記録し、現在の画素数から１を減算した回数だけ、ネガティブ画像用のカラー配列の末尾に、１を記録して、最後に０を記録します。次に、その他の色用のポジティブ画像用のカラー配列の末尾に、０を代入し、ネガティブ画像用のカラー配列の末尾に、１を代入します。【００６７】この工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチします。完了すれば、色ごとに分けられた０と１で構成された画像用配列が出来上がります。【００６８】（９）画像に使われている色を全て調べて色数をカウントし、色数分のファイルを作成する場合で、ポジティブ画像だけの場合【００６９】ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませます。読み込ませた画像の画素を最初から最後までサーチして、何色の色が使われているかを調べて、通し番号を付けて色数分のファイルを作成し、説明の都合上、これをカラーファイルと仮称します。次に、色数分サイズのＲＧＢ形式のデーターを格納する事が出来るカラー型の一次元配列を作成し、これを説明の都合上、カラーＦ配列と仮称し、このカラー型の配列にデーターを格納したかどうかを記録する為の変数を作成し、この変数を説明の都合上、Ｆ確認変数と仮称します。次に、画素数をカウントして、現在サーチしている画素が何番目の画素なのかを知る為の変数を作成し、この画素数をカウントする為の変数を画素Ｎ変数と仮称します。カラーファイルの通し番号は、カラーＦ配列の最初のインデックスから終端のインデックスと同じにする事で一対にし、カラーＦ配列のインデックスから、カラーファイルを探す事が出来る様に作成する。【００７０】次に、もう一度、画像の最初から最後まで画素をサーチし、画素ごとに以下の処理を行います。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。Ｆ確認変数を調べます。０だった場合は、まだカラーファイルにデーターが代入されていない事を意味します。つまり、Ｆ確認変数が０だった場合は、最初の色であるという事になります。最初の色は、新規の色ですので、そのＲＧＢ形式の色をカラーＦ配列の最初にＲＧＢ形式のカラーを代入します。そうして、Ｆ確認変数に１を加算します。Ｆ確認変数に１を加算する事でカラーＦ配列ＲＧＢ形式のデーターが幾つ代入されているかが確認できるわけです。とはいっても、カラーＦ配列にＲＧＢ形式のデーターが幾つ代入されているかを調べる方法は、他にもあります。通常の配列要素数の検査方法を行う事でも可能であります。カラーＦ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラーファイルが、その色に相当するカラーファイルなのかを探し出し、ポジティブ画像用のデーターとして、カラーファイルに１を代入します。【００７１】Ｆ確認変数が１以上である場合は、既に、画像用のデーターが１色以上、カラーファイルに記録されている事を意味していますので、サーチした色が既に記録されているかどうかをカラーＦ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、カラーＦ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラー配列が、その色に相当するカラー配列なのかを探し出し、その色に相当するカラーファイルの末尾に、ポジティブ画像用のデーターとして、１を代入し、同じ色以外のカラーファイルの末尾に、０を代入します。同じ色が無かった場合は、新規の色であるという事になりますので、新たにデーターを作成します。サーチした画素のカラー型のデーターをカラーＦ配列の末尾に代入し、Ｆ確認変数１を加算します。カラーＦ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラーファイルが、その色に相当するカラーファイルなのかを探し出し、画素Ｎ変数とその色に相当するカラーファイルに代入されたデーター数とを比較します。画素Ｎ変数よりもその色に相当するカラーファイルに代入されたデーター数が１少ない場合と、２以上少ない場合とに分岐します。画素Ｎ変数よりもその色に相当するカラーファイルに代入されたデーター数が１少ない場合は、ポジティブ画像用のカラー配列の末尾に、ポジティブ画像用のデーターとして、１を記録します。画素Ｎ変数よりもその色に相当するカラーファイルに代入されたデーター数が２以上少ないならば、現在の画素数から１を減算した回数だけ、カラーファイルの末尾に、ポジティブ画像用のデーターとして、０を記録して、最後に１を記録します。次に、その他の色のカラーファイルの末尾に、ポジティブ画像用のデーターとして、０を代入します。【００７２】この工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチします。完了すれば、色ごとに分けられた０と１で構成された画像用テキストファイルが出来上がります。【００７３】（１０）画像に使われている色を全て調べて色数をカウントし、色数分のファイルを作成する場合で、ネガティブ画像用データーも作成する場合【００７４】ＢＭＰ形式やＪＰＥＧ形式で作られた画像ファイルをコンピューターに読み込ませます。読み込ませた画像の画素を最初から最後までサーチして、何色の色が使われているかを調べて、通し番号を付けて色数分のファイルを作成し、説明の都合上、これをカラーファイルと仮称します。このカラーファイルは、ポジティブ画像用とネガティブ画像用との二種類作成します。従って、ポジティブ画像用カラーファイルとネガティブ画像用カラーファイルを区別する為に、ファイルの名称を違うものにするか、拡張子を違うものにする必要があります。
次に、色数分サイズのＲＧＢ形式のデーターを格納する事が出来るカラー型の一次元配列を作成し、これを説明の都合上、カラーＦ配列と仮称し、このカラー型の配列にデーターを格納したかどうかを記録する為の変数を作成し、この変数を説明の都合上、Ｆ確認変数と仮称します。次に、画素数をカウントして、現在サーチしている画素が何番目の画素なのかを知る為の変数を作成し、この画素数をカウントする為の変数を画素Ｎ変数と仮称します。カラーファイルの通し番号は、カラーＦ配列の最初のインデックスから終端のインデックスと同じにする事で一対にし、カラーＦ配列のインデックスから、カラーファイルを探す事が出来る様に作成する。【００７５】次に、もう一度、画像の最初から最後まで画素をサーチし、画素ごとに以下の処理を行います。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。Ｆ確認変数を調べます。０だった場合は、まだカラーファイルにデーターが代入されていない事を意味します。つまり、Ｆ確認変数が０だった場合は、最初の色であるという事になります。最初の色は、新規の色ですので、そのＲＧＢ形式の色をカラーＦ配列の最初にＲＧＢ形式のカラーを代入します。そうして、Ｆ確認変数に１を加算します。Ｆ確認変数に１を加算する事でカラーＦ配列ＲＧＢ形式のデーターが幾つ代入されているかが確認できるわけです。とはいっても、カラーＦ配列にＲＧＢ形式のデーターが幾つ代入されているかを調べる方法は、他にもあります。通常の配列要素数の検査方法を行う事でも可能であります。ポジティブ画像用のカラーファイルに１を代入し、ネガティブ画像用のカラーファイルに０を代入します。【００７６】Ｆ確認変数が１以上である場合は、既に、画像用のデーターが１色以上、カラーファイルに記録されている事を意味していますので、サーチした色が既に記録されているかどうかをカラーＦ配列に代入されたカラー型のデーターを検査して、同じ色があった場合と同じ色が無かった場合とに分岐します。同じ色があった場合は、カラーＦ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラーファイルが、その色に相当するカラーファイルなのかを探し出し、その色に相当するポジティブ画像用のカラーファイルの末尾に、１を代入し、ネガティブ画像用のカラーファイルの末尾に、０を代入します。同じ色以外のポジティブ画像用のカラーファイルの末尾に、０を代入し、ネガティブ画像用のカラーファイルの末尾に、１を代入します。同じ色が無かった場合は、新規の色であるという事になりますので、新たにデーターを作成します。サーチした画素のカラー型のデーターをカラーＦ配列の末尾に代入し、Ｆ確認変数１を加算します。カラーＦ配列のインデックスを取得するか、または、要素数の何番目に代入されているのかを調べて、どのカラーファイルが、その色に相当するカラーファイルなのかを探し出し、画素Ｎ変数とその色に相当するポジティブ画像用カラーファイルまたは、ネガティブ画像用カラーファイルのどちらか一方のカラーファイルに代入されたデーター数とを比較します。画素Ｎ変数よりもその色に相当するカラーファイルに代入されたデーター数が１少ない場合と、２以上少ない場合とに分岐します。画素Ｎ変数よりもその色に相当するカラーファイルに代入されたデーター数が１少ない場合は、ポジティブ画像用のカラーファイルの末尾に、ポジティブ画像用のデーターとして、１を記録し、ネガティブ画像用のカラーファイルの末尾に、ネガティブ画像用のデーターとして、０を記録します。画素Ｎ変数よりもその色に相当するカラーファイルに代入されたデーター数が２以上少ない場合は、現在の画素数から１を減算した回数だけ、ポジティブ画像用のカラーファイルの末尾に、０を記録して、最後に１を記録し、現在の画素数から１を減算した回数だけ、ネガティブ画像用のカラーファイルの末尾に、０を記録して、最後に１を記録します。次に、その他の色のポジティブ画像用のカラーファイルの末尾に、０を代入し、ネガティブ画像用のカラーファイルの末尾に、１を代入します。【００７７】この工程を画素ごとに繰り返し行い、画像ファイルの最後まで、画素をサーチします。完了すれば、色ごとに分けられた０と１で構成された画像用テキストファイルが出来上がります。【００７８】判定方法は、二種類あります。
（１３）画像が、文字として読める文字かどうかを判定する方法
（１４）画像が、何を描いた絵なのかを判定する方法
の二種類です。【００７９】（１３）画像が、文字として読める文字かどうかを判定する方法の場合【００８０】前述の（１）から（１１）のいずれかの工程で作成した、色ごとに分離した画像データーから、画像を作成します。カラー配列とＴカラー配列ともに、配列に代入された画像データーであります。この様に、画像データーが配列に代入されている場合は、配列の最初から最後までサーチして画像にしていきます。配列に代入されたデーターが０の場合は、白色とし、配列に代入されたデーターが１の場合は、黒色として、一画素ずつ、白色または、黒色に置き換えて画像を描画します。色ごとに分けられた０と１で構成された画像用テキストファイルから、画像を作成する場合は、まず、画像用テキストファイルに書き込まれている画像データー数と同じサイズの一次元配列を作成して、この一次元配列に画像用テキストファイルから、データーを全て代入します。次に、この一次元配列に代入された画像用データーを読み込み、０の場合は、白色とし、１の場合は、黒色として、画像を一画素ずつ描画し、一次元配列に代入された画像用データーの最終まで処理して画像を完成させます。この様な工程で作成した画像が、文字として読める文字かどうかを、予め作成してある文字用辞書と照合して読めた場合は、文字であると判定し、読めない場合は、絵であると判定します。画像に書かれた手書き文字を通常コンピューターで使用しているテキスト文字に変換するには、従来から行われている方法を使用して行います。従来から行っている方法とは、画素単位で画素を調べて一つの整数値を取得する方法（特開平３−２４０８９１）や、特徴点認識方式（特開２０００−２０７４９５）や、中心線を利用するものや、輪郭を利用するもの（特開５−１６６００２）や、フーリエ記述子を利用するものや、ファイルレベルで画素を調べて一つの整数値を取得する方法（特願２００７−２０３６２１）や、二重像方式（特願２００７−２１７５９３）などの事であるが、本発明出願時点で既に発明されている方法が他にもある場合は、その方法も含みます。読めたかどうかをコンピューターに自動で認識させる必要性があります。その方法は、画像に書かれた手書き文字を通常コンピューターで使用しているテキスト文字に変換する方式の内どの方式の場合でも、完全一致を含む最近似値を選択させて、その完全一致を含む最近似値が一定の誤差値以内であるかどうかによって、コンピューターに自動で認識させるという事を実現させます。実施例１では、二重像方式（特願２００７−２１７５９３）を使っておりますが、もう少し、詳しく説明いたします。フェーズ１には、画素単位で画素を調べて一つの整数値を取得する方法（特開平３−２４０８９１）を使用し、フェーズ２に、二重像方式（特願２００７−２１７５９３）を使用するという方法で行っております。二重像方式（特願２００７−２１７５９３）のフェーズ１は、数個の候補に絞込みを行う工程なので、画素単位で画素を調べて一つの整数値を取得する方法（特開平３−２４０８９１）や、特徴点認識方式（特開２０００−２０７４９５）や、中心線を利用するものや、輪郭を利用するもの（特開５−１６６００２）や、フーリエ記述子を利用するものや、ファイルレベルで画素を調べて一つの整数値を取得する方法（特願２００７−２０３６２１）などで行う事が可能なものであると考えております。また、数個の候補から一個の候補にする検査工程のフェーズ２には、二重像方式（特願２００７−２１７５９３）のフェーズ２を使用して行うのが良い方法であると考えております。そうして、数個の変換候補に絞り込みを行った後、候補の辞書から得られた代表値と、実際に読み込ませた画像の代表値との差が、完全一致を含む最近似値のものが、一定の誤差値以内であるかどうかによって、最終的に絞り込まれた変換候補として決定し、コンピューターに自動で認識させるという事を実現させます。勿論、辞書の作成工程も、フェーズ１に使用する方法に合わせて工程を変更する必要があります。【００８１】（１４）画像が、何を描いた絵なのかを判定する方法の場合【００８２】前述の（１）から（１１）のいずれかの工程で作成した、色ごとに分離した画像データーから、画像を作成します。カラー配列とＴカラー配列ともに、配列に代入された画像データーであります。この様に、画像データーが配列に代入されている場合は、配列の最初から最後までサーチして画像にしていきます。配列に代入されたデーターが０の場合は、白色とし、配列に代入されたデーターが１の場合は、黒色として、一画素ずつ、白色または、黒色に置き換えて画像を描画します。色ごとに分けられた０と１で構成された画像用テキストファイルから、画像を作成する場合は、まず、画像用テキストファイルに書き込まれている画像データー数と同じサイズの一次元配列を作成して、この一次元配列に画像用テキストファイルから、データーを全て代入します。次に、この一次元配列に代入された画像用データーを読み込み、０の場合は、白色とし、１の場合は、黒色として、画像を一画素ずつ描画し、一次元配列に代入された画像用データーの最終まで処理して画像を完成させます。この様な工程で作成した画像が、何を描いた絵なのかを判定させます。まず、完全二値化した物体の画像だけの画像ファイルとその画像が何であるのかをテキスト文字で記録した物体用辞書を作成します。この予め作成してある物体用辞書と前述の（１）から（７）のいずれかの工程で作成した、色ごとに分離した画像データーから、作成した画像を照合して、何の物体が描かれているのかが判断できない場合は、文字であると判定し、何も行わず、何の物体が描かれているのかが判断できた場合は、物体が描かれている絵と判定し、物体の名称をテキスト文字で表示します。画像に書かれた絵が何かを通常コンピューターで使用しているテキスト文字に変換するには、従来から行われている方法を使用して行います。従来から行っている方法とは、画素単位で画素を調べて一つの整数値を取得する方法（特開平３−２４０８９１）や、中心線を利用するものや、輪郭を利用するもの（特開５−１６６００２）や、フーリエ記述子を利用するものや、ファイルレベルで画素を調べて一つの整数値を取得する方法（特願２００７−２０３６２１）や、二重像方式（特願２００７−２１７５９３）などの事でありますが、本発明出願時点で既に発明されている方法が他にもある場合は、その方法も含みます。判定できたかどうかをコンピューターに自動で認識させる必要性があります。その方法は、画像に書かれた絵を通常コンピューターで使用しているテキスト文字に変換する方式の内どの方式の場合でも、完全一致を含む最近似値を選択させて、その完全一致を含む最近似値が一定の誤差値以内であるかどうかによって、コンピューターに自動で認識させるという事を実現させます。実施例２では、二重像方式（特願２００７−２１７５９３）を使っておりますが、もう少し、詳しく説明いたします。フェーズ１には、画素単位で画素を調べて一つの整数値を取得する方法（特開平３−２４０８９１）を使用し、フェーズ２に、二重像方式（特願２００７−２１７５９３）を使用するという方法で行っております。二重像方式（特願２００７−２１７５９３）のフェーズ１は、数個の候補に絞込みを行う工程なので、画素単位で画素を調べて一つの整数値を取得する方法（特開平３−２４０８９１）や、中心線を利用するものや、輪郭を利用するもの（特開５−１６６００２）や、フーリエ記述子を利用するものや、ファイルレベルで画素を調べて一つの整数値を取得する方法（特願２００７−２０３６２１）などで行う事が可能なものであると考えております。また、数個の候補から一個の候補にする検査工程のフェーズ２には、二重像方式（特願２００７−２１７５９３）のフェーズ２を使用して行うのが最も良い方法であると考えております。数個の変換候補に絞り込みを行った後、候補の辞書から得られた代表値と、実際に読み込ませた画像の代表値との差が、完全一致を含む最近似値のものが、一定の誤差値以内であるかどうかによって、最終的に絞り込まれた変換候補として決定し、コンピューターに自動で認識させるという事を実現させます。勿論、辞書の作成工程も、フェーズ１に使用する方法に合わせて工程を変更する必要があります。【００８３】前述の様に、ポジティブ画像用データーの場合は、注目色を１として、その他の色を０とし、ネガティブ画像用データーの場合は、注目色を０として、その他の色を１とすると記述しましたが、この改良として、ＲＧＢ形式のＲ色とＧ色とＢ色の各色コードを取得して、それをテキスト形式コードに変換してテキストファイルに保存して色そのものを残す事も可能です。【００８４】カラーＨ配列やカラーＦ配列の改良として、ＲＧＢ形式のＲ色とＧ色とＢ色の各色コードを取得して、整数型（もしくは、これに代用できる型）や文字列型（もしくは、これに代用できる型）に変換して、整数型（もしくは、これに代用できる型）や文字列型（もしくは、これに代用できる型）の一次元配列に代入する事も可能です。【００８５】また、絵を復元する場合は、カラーＦ配列や、カラーＨ配列などを利用すれば安易に色のついた画像を復元ができます。カラーＦ配列や、カラーＨ配列には、元の色そのものがＲＧＢ形式で代入されているからです。つまり、復元する時に、ＲＧＢ形式の色を参照させて、その色で画像を復元させるわけです。出来上がる画像は、複数の色ごとに分けられた画像になります。そうして、各、色ごとに復元した複数の絵の画像に、対して投下色を指定して重ね合わせる事で絵を復元します。【００８６】段落［００８０］と段落［００８１］に記述した誤差値ですが、これを学習させる事も可能であると考えております。どの様に学習させるかというと、画像の大きさによって誤差値が大きく違ってきますので、画像の大きさごとにグループを作り、そのグループ内の画像の代表値と他の画像の代表値との差を求めて、その求められた差が最も小さい値を選びだして、その値の１００％未満の値とする事で可能になると考えています。
【発明の効果】
【００８７】いろいろな、画像に書き込まれた文字を読み込ませる事が出来るようになります。つまり、写真などに映し出された商店の看板の文字を読ませるなどです。また、ロボットの目などに利用した場合は、文字を判読させるだけではなく、絵が何を意味しているかをも認識させる事ができる様になります。つまり、映像として写された、時計や書籍や机や椅子などありとあらゆる物体を認識させる事が可能になると考えられます。但し、画像を完全二値化して元の画像を推測できる様な画像は、限られているという点で問題があります。画像の登録側にも本発明の色分離判読コンピューターソフトウェアの工程を入れて、色を分離した形態で画像を登録する事で写真などの様なディテールが細かく、多彩な色を使用した物体の画像でも判読出来る様に成るのではなかろうかと考えています。物体を判別させる場合と文字を判読させる場合との相違点は、さほど無いと考えております。文字の場合は、その文字の辞書と照合するのですが、物体の場合は、物体の辞書と照合する事で認識させるという方法となりますので、文字を判読させるのと何らの違いも無い技術であると考えています。ただ、違う点は、前述のように、物体は、細かなディテールと多彩な色彩を持っているという点で、物体辞書の作成工程でも、本発明の色分離判読コンピューターソフトウェアの工程を入れる必要があるのではなかろうかと考えているところであります。なかなか、困難な問題の様にも思える問題でありますが、その識別工程に、先に述べました、二重像方式のソフトウェア（特願２００７−２１７５９３）を採用する事で、元の画像が部分的に欠けた状態であっても、または、点線状態になっていても、判別できると思われるので、今後の開発が期待できると思っております。また、物体辞書に記録する物体の特性を記録する事などで、その物体をより、フレキシブルに何であるかを判断させるなども出来ると考えております。つまり、動画で、注目した物体が動く物であるかどうかを、動画の機能のコマ送り機能を利用して、記録していくわけです。単に動くという状態を記録するだけでなく、どの様にうごくのかとか、その速度や、力や、動く方向や、その他の細かな動作などの情報を記録していく事が、人工頭脳の開発に必要不可欠な物体の概念化となります。この様に、辞書を物体にまで拡張して使用するという事は、人工頭脳の開発にまで繋がっていくものであると考えています。この人工頭脳の開発に必要不可欠な物体の概念化の工程に於いて色分離判別ソフトウェアを使用するという事自体は、画像の分析方法の一つの方法であります。必ずしも、本発明の色分離判別ソフトウェアを使用して、画像を分析しなければ、人工頭脳の開発に必要不可欠な物体の概念化ができないという事ではありませんが、利用可能な方法として考える事ができます。
【発明を実施するための最良の形態】
【００８８】スーパーのレジスターに使うとか、警備用ロボットに使用するとか、メーカーに於いては、商品の検品用機械に使用できると考えています。また、絵と文字とが混ざった文書をスキャナーでスキャンさせてこれを文字と文字ではない絵の部分とに分けるコンピューターソフトウェアに使えると考えております。しかしながら、この場合は、元の絵に復元する工程が入ります。この問題は、簡単な改良でも実施する事が可能です。改良方法は、前述の段落［００８３］と段落［００８４］と段落［００８５］とに記述しました。前述のどの使用方法で使用するにしても、その識別工程には、二重像方式のソフトウェア（特願２００７−２１７５９３）を採用する事が最良の使用方法であると考えております。
【実施例１】
【００８９】図１と図２と図３と図７から図１７は、実際とは大きく違います。特に、図１４から図１７は、発明者が使用している市販のお絵かきソフトウェアでは、完全二値化を行うと水色や黄色が消えてしまう為、部分的に市販のお絵かきソフトウェアで書き込みを行いました。その為、実際とは大きく違います。【００９０】図１の＜実施例に於ける使用機材の説明図＞のように、図符号２のコンピューター本体と図符号３のキーボードと図符号４のマウスと図符号１のモニターと図符号５のスキャナーとで構成され、図符号２のコンピューター本体に全ての機材がケーブルで接続されたコンピューターシステムを使用して実施しました。【００９１】図符号２のコンピューターは、ＤＯＳ／Ｖ汎用機を使用しました。ＯＳは、マイクロソフト株式会社の（登録商標）Ｗｉｎｄｏｗｓ  ＸＰ  Ｐｒｏｆｅｓｓｉｏｎａｌを使用しました。図符号５のスキャナーは、セイコーエプソン株式会社製のインクジェットプリンタ複合機のＰＭ−Ａ８２０を使用しました。【００９２】本発明の色分離判読コンピューターソフトウェアには、画像の前処理機能を付けませんでした。その為、スキャナーで読み取った画像は、全て、市販のお絵描きソフトウェアを使用して、スキャナーによるゴミの削除処理を手作業で行いました。【００９３】実施例１では、文字辞書とし、画像に描かれた文字が何という文字なのかを判読させるという事を行いました。Ａ４判の普通紙に、７２ポイントの大きさで特殊な文字でＡ、Ｂ、Ｃ、Ｄの各文字を一文字ずつ印刷しました。これを原稿として、図符号５のスキャナーを使用して、画像をスキャンさせました。そのスキャナーによって作成された図が、図７と図８と図９と図１０です。【００９４】まず、文字を辞書に登録します。図４で説明します。ステップ番号を符ってありますので、ステップ番号順に説明します。本発明の色分離判読コンピューターソフトウェアを起動させると、図２の操作画面が表示されます。図２の操作画面には、図符号１０のメニューの文字の登録ボタンがありますので、図符号４のマウスで左クリックします。すると、ドロップダウンリストで、文字の登録というリストが表示されますので、図符号４のマウスでこれを左クリックします。【００９５】ステップ１００に進みます。図３の文字の登録操作画面が表示されます。【００９６】次に、ステップ１０１に進みます。図符号１７の登録する文字ファイルの読み込みボタンを図符号４のマウスで左クリックして、登録したい文字の画像ファイルを指定し、図符号２０の画像を表示する画面に、画像を表示させます。次に、表示された画像に対応した文字を図符号１８の対応する文字を入力するボックスにテキスト文字で入力します。次に、図符号１９の登録ボタンを図符号４のマウスで左クリックして、登録作業をコンピューターにさせます。【００９７】ステップ１０２に進みます。画像を画素レベルでサーチして、黒色のコードが画素にある場合に画像があると判断させて、配列にその画素のＸ座標とＹ座標をそれぞれ代入し、その配列から、Ｘ座標とＹ座標の最大値と最小値を算出する事によって、画像が書かれている位置を取得します。【００９８】ステップ１０３に進みます。Ｘ座標とＹ座標の最小��の画素から、最大値の画素までのデーターを代入できるサイズの一次元配列を用意します。この一次元配列の事を０１配列と仮称します。次に、Ｘ座標とＹ座標の最小値の画素から、最大値の画素までをサーチします。画素に黒色のデーターがあった場合は、先に、用意した、０１配列に１を代入し、画素に白色のデーターがあった場合は、先に、用意した、０１配列に０を代入します。次に、この０１配列を最初から最後まで検査します。１が代入されていた場合だけ、その配列のインデックスを取得して、加算します。この計算によって、算出された数値を画像の位置の代表値とします。この画像の位置の代表値を画像位置の文字フォントデーターと仮称します。【００９９】ステップ１０４に進みます。文字画像がある部分だけを切り取り、この切り取った画像を基に、１画素分だけ画像を膨張させた画像を作成します。この１画素分だけ画像を膨張させた画像を辞書画像ファイルと仮称します。図符号９の辞書画像ファイルを保存しているホルダーに、辞書画像ファイルを保存します。【０１００】ステップ１０５に進みます。図符号１８に、入力された文字と、辞書画像ファイルを保存しているホルダーの位置と画像位置の文字フォントデーターを図符号８のデーターベースに記録します。【０１０１】以上の工程を図７と図８と図９と図１０全てに行って辞書を作成します。図７は、Ａというテキスト文字を辞書に登録し、図８は、Ｂというテキスト文字を辞書に登録し、図９は、Ｃというテキスト文字を辞書に登録し、図１０は、Ｄというテキスト文字を辞書に登録しました。辞書を作成し終わったら、図符号２１の閉じるボタンを図符号４のマウスで左クリックして、図３の文字の登録操作画面を終了させます。そうすると、図２の色分離判読ソフトウェアの操作画面が使用できる様になります。【０１０２】次に、判読できるかどうかをテストします。判読させたい文字画像は、当然ながら、７２ポイントで、辞書に登録した画像と同じフォントで作成し、スキャナーで読み込ませて使用します。ステップ１０６から始まります。図２の色分離判読ソフトウェアの操作画面の図符号１２のスキャナー画像ファイルの読み込みボタンを図符号４のマウスで左クリックして、判読させたい画像を指定して、その画像を図符号１５の画像表示用画面に表示します。誤差値は、文字の大きさによって、違いが発生しますので、必要に応じて、図符号１１の誤差値を入力しなおます。次に、図符号１４の変換実行ボタンを図符号４のマウスで左クリックします。【０１０３】ステップ１０７に進みます。画像を画素レベルでサーチして、黒色のコードが画素にある場合に画像があると判断させて、配列にその画素のＸ座標とＹ座標をそれぞれ代入し、その配列から、Ｘ座標とＹ座標の最大値と最小値を算出する事によって、画像が書かれている位置を取得します。このＸ座標とＹ座標の最大値と最小値を利用して、画像が書かれている部分だけの画像ファイルを作成して、一度、このファイルを保存します。再度、このファイルを指定して、読み込み、図符号１５の画像表示用画面に表示しなおします。これで、Ａ４判サイズの原稿画像が必要最低限の大きさにカットされた事になります。別段、このカットをしなくても問��はありませんが、高速処理を行わせるのに必要なカットの工程です。【０１０４】ステップ１０８に進みます。色を分離して、色ごとに配列やファイルに画像データーを作成する工程です。この工程は、図６の色分離工程のみのフローチャート図を使って説明します。この図６の色分離工程のみのフローチャート図には、ステップ番号を符ってありますので、ステップごとに処理を説明します。【０１０５】ステップ１０８−１に進みます。ポジティブ画像用のデーターとネガティブ画像用のデーターとを作りますので、色、一個に付き、必ず、２個の配列が必要になります。白色と黒色を特別な色として、特別な名称で、画素数分のサイズの一次元配列を４個作ります。説明の都合上、この４個の配列のグループもしくは、一個の配列をＴカラー配列と仮称します。このＴカラー配列には、予定した色ごとにデーターを格納します。つまり、黒色なら、Ｔ１カラーにデーターを入れるという具合に予め決めておきます。次に、予定した２色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＨ配列とします。それと、このカラーＨ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｈ確認変数とします。そうして、画素数分のサイズで、一次元配列を２色分作成します。この一次元配列に画像用データーを書き込みます。この一次元配列も、ポジティブ画像用データーとネガティブ画像用データーとの二種類分作成します。つまり、２色分という事は、４個の配列を作成するという事です。説明の都合上、仮称、ポジティブ画像用データーとネガティブ画像用データーとの区別をせずに、カラー１配列、カラー２配列といった具合に番号を付した名称とし、この配列のグループまたは、一個の配列をカラー配列と仮称します。このカラー配列の数を超えた場合、ファイルを作成します。このファイルを作成する為の画素数分のサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＦ配列とします。それと、このカラーＦ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｆ確認変数とします。画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とします。【０１０６】ステップ１０８−２に進みます。図符号１５の画像を表示する画面に表示された画像を画素単位で、最初から最後までサーチし以下の処理を行う。【０１０７】ステップ１０８−３に進みます。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。次に、画素が黒色と白色とその他の色の場合の３種類に分岐する。【０１０８】画素が黒色の場合は、ステップ１０８−４に進みます。【０１０９】ステップ１０８−５に進みます。Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、現在、サーチしている現在の画素数と比較して、Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数が、現在の画素数よりも、１少ない場合は、Ｔカ��ー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列の末尾に１を代入し、２以上少ない場合は、現在の画素数から１を減算した回数だけ０を、Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列の末尾に代入し、最後に１を代入します。Ｔカラー配列の中の黒色データー用のネガティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、現在、サーチしている現在の画素数と比較して、Ｔカラー配列の中の黒色データー用のネガティブ画像用データーを書き込む為の配列に代入されているデーター数が、現在の画素数よりも、１少ない場合は、Ｔカラー配列の中の黒色データー用のネガティブ画像用データーを書き込む為の配列の末尾に０を代入し、２以上少ない場合は、現在の画素数から１を減算した回数だけ１を、Ｔカラー配列の中の黒色データー用のネガティブ画像用データーを書き込む為の配列の末尾に代入し、最後に０を代入します。【０１１０】ステップ１０８−６に進みます。Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列にデーターが幾つ書き込まれているかを検査する。配列要素白色のデーターが既に存在している場合とまだ存在していない場合とに分岐する。データーが既に存在している場合は、画素に白色がなかったという事を意味する０をポジティブ画像用配列の末尾に代入し、ネガティブ画像用配列には、同じく、データーがなかったという事を意味する１をネガティブ画像用配列の末尾に代入する。存在していない場合は、何もせずにそのまま、つぎの処理を行う。【０１１１】ステップ１０８−７に進みます。カラーＨ配列とカラーＦ配列にデーターが入っているかどうかを、それぞれ、Ｈ確認変数とＦ確認変数を調べて、Ｈ確認変数とＦ確認変数の両方とも数値が０の場合と、Ｈ確認変数が１以上の場合とＦ確認変数が１以上の場合とに分岐します。【０１１２】ステップ１０８−８に進みます。Ｈ確認変数が１以上の場合は、Ｈ確認変数を上限として、カラー１配列、カラー２配列のポジティブ画像用配列の末尾に０を代入し、ネガティブ画像用配列の末尾に１を代入する処理を繰り返し行います。Ｆ確認変数が１以上の場合は、Ｆ確認変数−１を上限として、カラーＦ配列のインデックスを取得して、これをファイル名としたファイルを探し出し、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾０を記録し、ネガティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に１を記録します。Ｈ確認変数とＦ確認変数の両方とも数値が０の場合は、何もせずに、次の処理、つまり、ステップ１０８−２１に進みます。【０１１３】画素が白色の場合は、ステップ１０８−９に進みます。【０１１４】ステップ１０８−１０に進みます。Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、現在、サーチしている現在の画素数と比較して、Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数が、現在の画素数よりも、１少ない場合は、Ｔカラー配列の中の白色データー用のポジティブ画像用��ーターを書き込む為の配列の末尾に１を代入し、２以上少ない場合は、現在の画素数から１を減算した回数だけ０を、Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列の末尾に代入し、最後に１を代入します。Ｔカラー配列の中の白色データー用のネガティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、現在、サーチしている現在の画素数と比較して、Ｔカラー配列の中の白色データー用のネガティブ画像用データーを書き込む為の配列に代入されているデーター数が、現在の画素数よりも、１少ない場合は、Ｔカラー配列の中の白色データー用のネガティブ画像用データーを書き込む為の配列の末尾に０を代入し、２以上少ない場合は、現在の画素数から１を減算した回数だけ１を、Ｔカラー配列の中の白色データー用のネガティブ画像用データーを書き込む為の配列の末尾に代入し、最後に０を代入します。【０１１５】ステップ１０８−１１に進みます。Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列にデーターが幾つ書き込まれているかを検査する。配列要素黒色のデーターが既に存在している場合とまだ存在していない場合とに分岐する。データーが既に存在している場合は、画素に黒色がなかったという事を意味する０をポジティブ画像用配列の末尾に代入し、ネガティブ画像用配列には、同じく、データーがなかったという事を意味する１をネガティブ画像用配列の末尾に代入する。存在していない場合は、何もせずにそのまま、つぎの処理を行う。【０１１６】ステップ１０８−１２進みます。カラーＨ配列とカラーＦ配列にデーターが入っているかどうかを、それぞれ、Ｈ確認変数とＦ確認変数を調べて、Ｈ確認変数とＦ確認変数の両方とも数値が０の場合と、Ｈ確認変数が１以上の場合とＦ確認変数が１以上の場合とに分岐します。【０１１７】ステップ１０８−１３に進みます。Ｈ確認変数が１以上の場合は、Ｈ確認変数を上限として、カラー１配列、カラー２配列のポジティブ画像用配列の末尾に０を代入し、ネガティブ画像用配列の末尾に１を代入する処理を繰り返し行います。Ｆ確認変数が１以上の場合は、Ｆ確認変数−１を上限として、カラーＦ配列のインデックスを取得して、これをファイル名としたファイルを探し出し、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾０を記録し、ネガティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に１を記録します。Ｈ確認変数とＦ確認変数の両方とも数値が０の場合は、何もせずに、次の処理、つまり、ステップ１０８−２１に進みます。【０１１８】その他の色の場合は、ステップ１０８−１４に進みます。【０１１９】ステップ１０８−１５に進みます。Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、０の場合と１以上の場合とに分岐する。データー数が１以上の場合は、白色データー用のポジティブ画像用データーを書き込む為の配列の末尾に０を代入し、白色データー用のネガティブ画像用データーを書き込む為の配列の末尾に１を代入します。データー数が０の場合は、何もせずに、つぎの処理を行う��Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、０の場合と１以上の場合とに分岐する。データー数が１以上の場合は、黒色データー用のポジティブ画像用データーを書き込む為の配列の末尾に０を代入し、黒色データー用のネガティブ画像用データーを書き込む為の配列の末尾に１を代入します。データー数が０の場合は、何もせずに、つぎの処理を行う。【０１２０】ステップ１０８−１６に進みます。カラーＨ配列とカラーＦ配列にデーターが入っているかどうかを、それぞれ、Ｈ確認変数とＦ確認変数を調べる事で行います。Ｆ確認変数が１以上の場合は、ステップ１０８−１９に進みます。Ｆ確認変数が０の場合は、Ｈ確認変数の数値が０の場合と、Ｈ確認変数が１以上の場合とに分岐します。Ｈ確認変数の数値が０の場合は、Ｈ確認変数に１を加算し、カラー１配列のポジティブ画像用配列に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ０を代入して、最後に、１を代入し、カラー１配列のネガティブ画像用配列に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ１を代入して、最後に、０を代入し、ステップ１０８−２１に進みます。【０１２１】Ｈ確認変数が１以上の場合は、ステップ１０８−１７に進みます。カラーＨ配列に代入されたＲＧＢ形式のカラーデーターに、画素と同じデーターがあった場合と、違うデーターの場合と画素と同じデーターが無かった場合とに分岐します。画素と同じデーターがあった場合は、画素と同じデーターが代入されたカラーＨ配列のインデックスを取得して、その配列に相当するカラー１配列か、または、カラー２配列の末尾に、１を代入し、違うデーターの場合は、検査したカラーＨ配列に相当するカラーＨ配列のインデックスを取得して、その配列に相当するカラー１配列か、または、カラー２配列の末尾に、０を代入し、ステップ１０８−２１に進みます。画素と同じデーターが無かった場合は、ステップ１０８−１８に進みます。【０１２２】ステップ１０８−１８では、Ｈ確認変数が１の場合と２の場合とに分岐します。Ｈ確認変数が１の場合は、Ｈ確認変数に１を加算し、カラーＨ配列に、画素のＲＧＢ形式のカラーデーターを代入します。カラー２配列のポジティブ画像用配列に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ０を代入して、最後に、１を代入し、カラー２配列のネガティブ画像用配列に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ１を代入して、最後に、０を代入します。２の場合は、まず、Ｆ確認変数に１を加算します。次に、カラーＦ配列に、画素のＲＧＢ形式のデーターを代入し、その代入したカラーＦ配列のインデックスを取得して、そのインデックスを付けた名前のファイル名でファイルを作成し、これをその色のポジティブ画像用のデーターを書き込む為のファイルとします。また、これとは、別に拡張子だけ違うファイルを作成し、このファイルをその色のネガティブ画像用のデーターを書き込む為のファイルとします。ポジティブ画像用ファイルの末尾に、現在の画素数を画素Ｎ変数から取得し��、現在の画素数から１減算した回数分だけ０を記録して、最後に、１を記録し、ネガティブ画像用ファイルの末尾に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ１を記録して、最後に、０を記録します。【０１２３】Ｆ確認変数が１以上の場合は、ステップ１０８−１９に進みます。まず、カラーＨ配列に必ず、２個のＲＧＢ形式のカラーデーターが代入されていますので、カラーＨ配列に代入されたＲＧＢ形式のカラーデーターに、画素と同じデーターがあった場合と、画素と違うデーターの場合と画素と同じデーターが無かった場合とに分岐します。画素と同じデーターがあった場合は、画素と同じデーターが代入されたカラーＨ配列のインデックスを取得して、その配列に相当するカラー１配列か、または、カラー２配列の末尾に、１を代入し、画素と違うデーターの場合は、検査したカラーＨ配列に相当するカラーＨ配列のインデックスを取得して、その配列に相当するカラー１配列か、または、カラー２配列の末尾に、０を代入します。画素と同じデーターが無かった場合は、カラーＦ配列を検査し、画素と同じデーターがあった場合と画素と違うデーターがあった場合と画素と同じデーターが無かった場合とに分岐します。画素と同じデーターがあった場合は、画素と同じデーターがあったカラーＦ配列のインデックスを取得して、そのインデックスを付けたファイルを探し出して、そのファイルの末尾に、ポジティブ画像用データーとして、１を記録します。次に、同じファイル名で、違う拡張子を付けたファイルが作成されているはずですので、このファイルを探し出して、ファイルの末尾に、ネガティブ画像用データーとして、０を代入します。画素と違うデーターがあった場合は、画素と違うデーターがあったカラーＦ配列のインデックスを取得して、そのインデックスを付けたファイルを探し出して、そのファイルの末尾に、ポジティブ画像用データーとして、０を記録します。次に、同じファイル名で、違う拡張子を付けたファイルが作成されているはずですので、このファイルを探し出して、ファイルの末尾に、ネガティブ画像用データーとして、１を代入します。画素と同じデーターが無かった場合は、まず、Ｆ確認変数に１を加算します。次に、カラーＦ配列の末尾に、画素のＲＧＢ形式のデーターを代入し、その代入したカラーＦ配列のインデックスを取得して、そのインデックスを付けた名前のファイル名でファイルを作成し、これをその色のポジティブ画像用のデーターを書き込む為のファイルとします。また、これとは、別に拡張子だけ違うファイルを作成し、このファイルをその色のネガティブ画像用のデーターを書き込む為のファイルとします。ポジティブ画像用ファイルの末尾に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ０を記録して、最後に、１を記録し、ネガティブ画像用ファイルの末尾に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ１を記録して、最後に、０を記録します。【０１２４】ステップ１０８−２１に進みます。次の画素を検査します。つまり、ステップ１０８−２に処理を戻します。画像の終端に達したら、このループを終了し、次の処理に��みます。【０１２５】ステップ１０９に進みます。色分けされた画像の記録方式によって処理を場合分けし、必ず、全ての場合に於いて、ポティブ画像とネガティブ画像との二種類の画像データーがありますので、処理を繰り返し行います。この場合分けは、以下の様になります。
（１）白画像のみがある場合
（２）黒画像のみがある場合
（３）白画像と黒画像がある場合
（４）白画像とカラー１配列がある場合
（５）黒画像とカラー１配列がある場合
（６）白画像と黒画像とカラー１配列がある場合
（７）白画像とカラー１配列とカラー２配列がある場合
（８）黒画像とカラー１配列とカラー２配列がある場合
（９）白画像と黒画像とカラー１配列とカラー２配列がある場合
（１０）白画像とカラー１配列とカラー２配列と画像データーを書き込んだファイルがある場合
（１１）黒画像とカラー１配列とカラー２配列と画像データーを書き込んだファイルがある場合
（１２）白画像と黒画像とカラー１配列とカラー２配列と画像データーを書き込んだファイルがある場合
場合分けの内、画像データーを書き込んだファイルがある場合だけ、処理が違ってきます。ファイルに記録されている０と１のデーターは、テキスト形式ですから、これを数値データーとして配列に代入する工程が入ります。【０１２６】ステップ１１０に進みます。配列に代入された画像用データーが、１の場合は、黒色とし、０の場合は、白色として、画像を作成します。画像を画素レベルでサーチして、黒色のコードが画素にある場合に画像があると判断させて、配列にその画素のＸ座標とＹ座標をそれぞれ代入し、その配列から、Ｘ座標とＹ座標の最大値と最小値を算出する事によって、画像が書かれている位置を取得します。このＸ座標とＹ座標の最大値と最小値を利用して、画像が書かれている部分だけの画像ファイルを作成して、一度、このファイルを保存します。再度、このファイルを指定して、読み込む際、図符号１５の画像表示用画面をファイルのサイズに合わせて再描画させて、指定したファイルの画像を再描画させた図符号１５の画像表示用画面に表示しなおします。図符号１５の画像表示用画面に表示された画像のサイズを取得します。画像サイズの高さと横の長さを掛け算して画像の最大画素数を求めます。求めた最大画素数のサイズで一次元配列を用意します。この一次元配列の事を０１配列と仮称します。次に、Ｘ座標とＹ座標の最小値の画素から、最大値の画素までをサーチします。画素に黒色のデーターがあった場合は、先に、用意した、０１配列に１を代入し、画素に白色のデーターがあった場合は、先に、用意した、０１配列に０を代入します。次に、この０１配列を最初から最後まで検査します。１が代入されていた場合だけ、その配列のインデックスを取得して、加算します。この計算によって、算出された数値を画像の位置の代表値とします。ここで、得られた画像の位置の代表値と辞書に記録された画像位置の文字フォントデーターと照合します。図符号８のデーターベースに記録された画像位置の文字フォントデーターの内、完全一致を含む最近似値のものから順に、３候補選び出します。完全一致を含む最近似値のものから順に、３候補選び出し方は、常識であろうと思われますが、以下の様に行いました。全てデーターを格納する事が出来るサイズの配列を作成し、この配列をテストデーター配列と仮称します。このテストデーター配列に全てのデーター（辞書に記録された画像位置の文字フォントデーター）を代入します。テストデーター配列と同じサイズの配列を作成します。この配列は、基になる数値と全てのデーターの個々のデーターとの差を格納する為の配列です。これを誤差配列と仮称します。この誤差配列に、基になる数値（画像の位置の代表値）から全てのデーターの個々のデーター（辞書に記録された画像位置の文字フォントデーター）を減算して、差を出してその差の絶対値を代入します。次に、この誤差配列のコピー配列を作成し、このコピー配列を値が小さい順にソートします。値が３個代入できる配列を作成し、この配列をテスト３配列と仮称します。ソートしたコピー配列の上から順番に、このテスト３配列に３個のデーターを代入します。まず、始めに、誤差配列に、テスト３配列の一番目の要素と同じ数値のものがあるかどうかを検査し、同じ数値があったら、誤差配列のインデックスを取得します。誤差配列と、テストデーター配列のインデックスは同じです。従って、テストデーター配列の中から、一番、完全一致を含む近似値である数値を一個抽出した事になります。二個目は、テスト３配列の一番目の要素と同じ数値があった誤差配列のインデックスよりも後の残りを検査すれば良いとなります。つまり、テスト３配列の二番目の数値と同じ数値を誤差配列の残りのデーターの中から探し出す訳です。二番目の数値と同じ数値が見つかったら、誤差配列のインデックスを取得し、テスト３配列の三番目の数値も同じ様に、二番目の数値と同じ数値が見つかった位置よりも後の残りの誤差配列の中から探し出す事によって、３候補を選びだします。【０１２７】ステップ１１１に進みます。図符号１５の画像表示用画面に表示された画像を２画素分縮小（または、収縮）させます。特願２００７−２１７５９３では、１０ポイントの文字を使用したせいか、文字に滲みやかすみなどによって構成されるでこぼこが少ないと思われ、１画素分の縮小（または、収縮）で良い結果が得られましたが、今回の実施では、７２ポイントという大きな文字の画像を使用しましたので、画像に滲みやかすみなどによって構成されるでこぼこが多いと思われ、良い結果が得られない様だったので、２画素分縮小（または、収縮）させました。この縮小（または、収縮）させた画像をファイルとして保存します。図符号８のデーターベースに記録された、辞書画像ファイルを保存してあるホルダーの位置を取得して、図符号９のデーターベースに記録された３候補の辞書画像ファイルを選び出します。選び出した３候補の辞書画像ファイルの内、一番、完全一致を含む最近似値の画像を縮小させた画像ファイルに重ね合わせます。この重ね合わせた画像を二重像と仮称します。この二重像をファイルとして、保存し、保存したファイルを二重像ファイルと仮称します。この二重像ファイルを作成する時点では、画像と画像がうまく重なり合う様に、センタリングを行いました。このセンタリングは、画像ファイルの縦と横のサイズの違いによって、場合わけを行う事で行いました。縮小（または、収縮）画像ファイルと、３候補の辞書画像ファイルの縦と横のサイズが同じ場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズが両方ともに、縮小（または、収縮）画像ファイルの縦と横のサイズの方が小さい場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズが両方ともに、３候補の辞書画像ファイルの縦と横のサイズの方が小さい場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズの縦のみが、３候補の辞書画像ファイルの縦のサイズの方が小さい場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズの縦のみが、縮小（または、収縮）画像ファイルの縦のサイズの方が小さい場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズの横のみが、３候補の辞書画像ファイルの横のサイズの方が小さい場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズの横のみが、縮小（または、収縮）画像ファイルの横のサイズの方が小さい場合と、の６種類の場合わけを行いました。場合わけを行った後に、必要に応じて縦と横のサイズ差を算出し、その差を２で割ります。小数点が出た場合は、その数値に小数点以下切り捨てと、小数点以下切り上げを行い、算出された二つの数値の片一方を縦と横の最初のデーターとし、もう一方を縦と横の終端のデーターとします。そうして、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズのどちらか大きいサイズの方から除算して、画像ファイルを重ね合わせました。この様にして、作成した二重像ファイルのサイズを算出して、算出したファイルサイズで一次元配列を作成し、その作成した一次元配列に、二重像ファイルをＢｙｔｅ単位で読み込ませます。この一次元配列のデーターを終端まで検査します。０が代入されていた場合は、１として加算して、０以外の場合は、何もしないという計算を行う事で一個の整数値を得ます。この得られた整数値を画像の代表値とし、この代表値を仮称、Ｍ代表値とします。次に、図符号８のデーターベースに記録された、辞書画像ファイルを保存してあるホルダーの位置を取得して、３候補の辞書画像ファイルを選び出します。選び出した３候補の辞書画像ファイルのサイズを調べて、そのサイズで一次元配列を作成し、その作成した一次元配列にＢｙｔｅ単位でファイルを読み込ませます。この一次元配列のデーターを終端まで検査します。０が代入されていた場合は、１として加算して、０以外の場合は、何もしないという計算を行う事で一個の整数値を得ます。この得られた整数値を画像の代表値とし、この代表値を仮称、Ｊ代表値とします。Ｍ代表値と３候補のＪ代表値を比較します。Ｊ代表値からＭ代表値を減算し、その絶対値を算出します。算出した絶対値が小さい値順にソートし、完全一致を含む最近似値のものを選び出します。【０１２８】ステップ１１２に進みます。ステップ１１１で抽出した変換候補のＪ代表値からＭ代表値を減算して求められた絶対値が、図符号１１の誤差値を入力するボックスに入力された数値以下か、または、未満の場合に、この候補を変換候補として、決定し、処理を中断して、選び出した画像に相当する文字列を図符号８のデーターベースから抽出し、図符号１３の変換結果を表示するボックスに、表示して終了します。変換候補が無かった場合は、ステップ１０９に戻って、次の色の画像データーで、繰り返し変換候補が見つかるまで検証します。
【実施例２】
【０１２９】次に、行った実施例は、辞書を物体の画像として、描かれた物体が何であるかを判断させました。Ａ４判の普通紙に物体の絵を一個ずつ印刷し、これを原稿として、図符号５のスキャナーを使用して、画像をスキャンさせました。そのスキャナーによって作成された図が、図１１と図１２と図１３と図１４です。【０１３０】本発明の色分離判読コンピューターソフトウェアには、画像の前処理機能を付けませんでした。その為、スキャナーで読み取った画像は、全て、市販のお絵描きソフトウェアを使用して、スキャナーによるゴミの削除処理を手作業で行いました。【０１３１】まず、物体の画像を辞書に登録します。図４で説明します。ステップ番号を符ってありますので、ステップ番号順に説明します。本発明の色分離判読コンピューターソフトウェアを起動させると、図２の操作画面が表示されます。図２の操作画面には、図符号１０のメニューの文字の登録ボタンがありますので、図符号４のマウスで左クリックします。すると、ドロップダウンリストで、文字の登録というリストが表示されますので、図符号４のマウスでこれを左クリックします。【０１３２】ステップ１００に進みます。図３の文字の登録操作画面が表示されます。【０１３３】次に、ステップ１０１に進みます。図符号１７の登録する文字ファイルの読み込みボタンを図符号４のマウスで左クリックして、登録したい物体の画像ファイルを指定し、図符号２０の画像を表示する画面に、画像を表示させます。次に、表示された画像に対応した名称を図符号１８の対応する文字を入力するボックスにテキスト文字で入力します。次に、図符号１９の登録ボタンを図符号４のマウスで左クリックして、登録作業をコンピューターにさせます。【０１３４】ステップ１０２に進みます。画像を画素レベルでサーチして、黒色のコードが画素にある場合に画像があると判断させて、配列にその画素のＸ座標とＹ座標をそれぞれ代入し、その配列から、Ｘ座標とＹ座標の最大値と最小値を算出する事によって、画像が書かれている位置を取得します。【０１３５】ステップ１０３に進みます。Ｘ座標とＹ座標の最小値の画素から、最大値の画素までのデーターを代入できるサイズの一次元配列を用意します。この一次元配列の事を０１配列と仮称します。次に、Ｘ座標とＹ座標の最小値の画素から、最大値の画素までをサーチします。画素に黒色のデーターがあった場合は、先に、用意した、０１配列に１を代入し、画素に白色のデーターがあった場合は、先に、用意した、０１配列に０を代入します。次に、この０１配列を最初から最後まで検査します。１が代入されていた場合だけ、その配列のインデックスを取得して、加算します。この計算によって、算出された数値を画像の位置の代表値とします。この画像の位置の代表値を画像位置の物体データーと仮称します。【０１３６】ステップ１０４に進みます。文字画像がある部分だけを切り取り、この切り取った画像を基に、１画素分だけ画像を膨張させた画像を作成します。この１画素分だけ画像を膨張させた画像を辞書画像ファイルと仮称します。図符号９の辞書画像ファイルを保存しているホルダーに、辞書画像ファイルを保存します。【０１３７】ステップ１０５に進みます。図符号１８に、入力された文字と、辞書画像ファイルを保存しているホルダーの位置と画像位置の物体データーを図符号８のデーターベースに記録します。【０１３８】以上の工程を図１１と図１２と図１３と図１４の全てに行って辞書を作成します。図１１は、サッカーボールというテキスト文字を辞書に登録し、図１２は、パンダというテキスト文字を辞書に登録し、図１３は、自転車に乗っている人というテキスト文字を辞書に登録し、図１４は、飛行機というテキスト文字を辞書に登録しました。辞書を作成し終わったら、図符号２１の閉じるボタンを図符号４のマウスで左クリックして、図３の文字の登録操作画面を終了させます。そうすると、図２の色分離判読ソフトウェアの操作画面が使用できる様になります。【０１３９】次に、判読できるかどうかをテストします。判読させたい画像は、当然ながら、辞書に登録した画像と同じ大きさで作成し、スキャナーで読み込ませて使用します。ステップ１０６から始まります。図２の色分離判読ソフトウェアの操作画面の図符号１２のスキャナー画像ファイルの読み込みボタンを図符号４のマウスで左クリックして、判読させたい画像を指定して、その画像を図符号１５の画像表示用画面に表示します。誤差値は、物体の画像の大きさによって、違いが発生しますので、必要に応じて、図符号１１の誤差値を入力しなおます。次に、図符号１４の変換実行ボタンを図符号４のマウスで左クリックします。【０１４０】ステップ１０７に進みます。画像を画素レベルでサーチして、黒色のコードが画素にある場合に画像があると判断させて、配列にその画素のＸ座標とＹ座標をそれぞれ代入し、その配列から、Ｘ座標とＹ座標の最大値と最小値を算出する事によって、画像が書かれている位置を取得します。このＸ座標とＹ座標の最大値と最小値を利用して、画像が書かれている部分だけの画像ファイルを作成して、一度、このファイルを保存します。再度、このファイルを指定して、読み込み、図符号１５の画像表示用画面に表示しなおします。これで、Ａ４判サイズの原稿画像が必要最低限の大きさにカットされた事になります。別段、このカットをしなくても問題はありませんが、高速処理を行わせるのに必要なカットの工程です。【０１４１】ステップ１０８に進みます。色を分離して、色ごとに配列やファイルに画像データーを作成する工程です。この工程は、図６の色分離工程のみのフローチャート図を使って説明します。この図６の色分離工程のみのフローチャート図には、ステップ番号を符ってありますので、ステップごとに処理を説明します。【０１４２】ステップ１０８−１に進みます。ポジティブ画像用のデーターとネガティブ画像用のデーターとを作りますので、色、一個に付き、必ず、２個の配列が必要になります。白色と黒色を特別な色として、特別な名称で、画素数分のサイズの一次元配列を４個作ります。説明の都合上、この４個の配列のグループもしくは、一個の配列をＴカラー配列と仮称します。次に、予定した２色分のＲＧＢ形式のデーターを代入できるサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＨ配列とします。それと、このカラーＨ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｈ確認変数とします。そうして、画素数分のサイズで、一次元配列を２色分作成します。この一次元配列に画像用データーを書き込みます。この一次元配列も、ポジティブ画像用データーとネガティブ画像用データーとの二種類分作成します。つまり、２色分という事は、４個の配列を作成するという事です。説明の都合上、仮称、ポジティブ画像用データーとネガティブ画像用データーとの区別をせずに、カラー１配列、カラー２配列といった具合に番号を付した名称とし、この配列のグループまたは、一個の配列をカラー配列と仮称します。このカラー配列の数を超えた場合、ファイルを作成します。このファイルを作成する為の画素数分のサイズのカラー型の一次元配列を作成します。このカラー型の一次元配列を説明の都合上、仮称、カラーＦ配列とします。それと、このカラーＦ配列にデーターを書き込んだという事を記録する為の変数を用意します。この変数を説明の都合上、Ｆ確認変数とします。画素数をカウントする為の変数を作成し、この変数を仮称、画素Ｎ変数とします。【０１４３】ステップ１０８−２に進みます。図符号１５の画像を表示する画面に表示された画像を画素単位で、最初から最後までサーチし以下の処理を行う。【０１４４】ステップ１０８−３に進みます。画素を検査する度に、画素Ｎ変数に１を加算する事によって、画素数をカウントします。次に、画素が黒色と白色とその他の色の場合の３種類に分岐する。【０１４５】画素が黒色の場合は、ステップ１０８−４に進みます。【０１４６】ステップ１０８−５に進みます。Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、現在、サーチしている現在の画素数と比較して、Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数が、現在の画素数よりも、１少ない場合は、Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列の末尾に１を代入し、２以上少ない場合は、現在の画素数から１を減算した回数だけ０を、Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列の末尾に代入し、最後に１を代入します。Ｔカラー配列の中の黒色データー用のネガティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、現在、サーチしている現在の画素数と比較して、Ｔカラー配列の中の黒色データー用のネガティブ画像用データーを書き込む為の配列に代入されているデーター数が、現在の画素数よりも、１少ない場合は、Ｔカラー配列の中の黒色データー用のネガティブ画像用データーを書き込む為の配列の末尾に０を代入し、２以上少ない場合は、現在の画素数から１を減算した回数だけ１を、Ｔカラー配列の中の黒色データー用のネガティブ画像用データーを書き込む為の配列の末尾に代入し、最後に０を代入します。【０１４７】ステップ１０８−６に進みます。Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列にデーターが幾つ書き込まれているかを検査する。配列要素白色のデーターが既に存在している場合とまだ存在していない場合とに分岐する。データーが既に存在している場合は、画素に白色がなかったという事を意味する０をポジティブ画像用配列の末尾に代入し、ネガティブ画像用配列には、同じく、データーがなかったという事を意味する１をネガティブ画像用配列の末尾に代入する。存在していない場合は、何もせずにそのまま、つぎの処理を行う。【０１４８】ステップ１０８−７に進みます。カラーＨ配列とカラーＦ配列にデーターが入っているかどうかを、それぞれ、Ｈ確認変数とＦ確認変数を調べて、Ｈ確認変数とＦ確認変数の両方とも数値が０の場合と、Ｈ確認変数が１以上の場合とＦ確認変数が１以上の場合とに分岐します。【０１４９】ステップ１０８−８に進みます。Ｈ確認変数が１以上の場合は、Ｈ確認変数を上限として、カラー１配列、カラー２配列のポジティブ画像用配列の末尾に０を代入し、ネガティブ画像用配列の末尾に１を代入する処理を繰り返し行います。Ｆ確認変数が１以上の場合は、Ｆ確認変数−１を上限として、カラーＦ配列のインデックスを取得して、これをファイル名としたファイルを探し出し、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾０を記録し、ネガティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に１を記録します。Ｈ確認変数とＦ確認変数の両方とも数値が０の場合は、何もせずに、次の処理、つまり、ステップ１０８−２１に進みます。【０１５０】画素が白色の場合は、ステップ１０８−９に進みます。【０１５１】ステップ１０８−１０に進みます。Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、現在、サーチしている現在の画素数と比較して、Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数が、現在の画素数よりも、１少ない場合は、Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列の末尾に１を代入し、２以上少ない場合は、現在の画素数から１を減算した回数だけ０を、Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列の末尾に代入し、最後に１を代入します。Ｔカラー配列の中の白色データー用のネガティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、現在、サーチしている現在の画素数と比較して、Ｔカラー配列の中の白色データー用のネガティブ画像用データーを書き込む為の配列に代入されているデーター数が、現在の画素数よりも、１少ない場合は、Ｔカラー配列の中の白色データー用のネガティブ画像用データーを書き込む為の配列の末尾に０を代入し、２以上少ない場合は、現在の画素数から１を減算した回数だけ１を、Ｔカラー配列の中の白色データー用のネガティブ画像用データーを書き込む為の配列の末尾に代入し、最後に０を代入します。【０１５２】ステップ１０８−１１に進みます。Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列にデーターが幾つ書き込まれているかを検査する。配列要素黒色のデーターが既に存在している場合とまだ存在していない場合とに分岐する。データーが既に存在している場合は、画素に黒色がなかったという事を意味する０をポジティブ画像用配列の末尾に代入し、ネガティブ画像用配列には、同じく、データーがなかったという事を意味する１をネガティブ画像用配列の末尾に代入する。存在していない場合は、何もせずにそのまま、つぎの処理を行う。【０１５３】ステップ１０８−１２進みます。カラーＨ配列とカラーＦ配列にデーターが入っているかどうかを、それぞれ、Ｈ確認変数とＦ確認変数を調べて、Ｈ確認変数とＦ確認変数の両方とも数値が０の場合と、Ｈ確認変数が１以上の場合とＦ確認変数が１以上の場合とに分岐します。【０１５４】ステップ１０８−１３に進みます。Ｈ確認変数が１以上の場合は、Ｈ確認変数を上限として、カラー１配列、カラー２配列のポジティブ画像用配列の末尾に０を代入し、ネガティブ画像用配列の末尾に１を代入する処理を繰り返し行います。Ｆ確認変数が１以上の場合は、Ｆ確認変数−１を上限として、カラーＦ配列のインデックスを取得して、これをファイル名としたファイルを探し出し、ポジティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾０を記録し、ネガティブ画像用データーを書き込む為のファイルの場合は、このファイル末尾に１を記録します。Ｈ確認変数とＦ確認変数の両方とも数値が０の場合は、何もせずに、次の処理、つまり、ステップ１０８−２１に進みます。【０１５５】その他の色の場合は、ステップ１０８−１４に進みます。【０１５６】ステップ１０８−１５に進みます。Ｔカラー配列の中の白色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、０の場合と１以上の場合とに分岐する。データー数が１以上の場合は、白色データー用のポジティブ画像用データーを書き込む為の配列の末尾に０を代入し、白色データー用のネガティブ画像用データーを書き込む為の配列の末尾に１を代入します。データー数が０の場合は、何もせずに、つぎの処理を行う。Ｔカラー配列の中の黒色データー用のポジティブ画像用データーを書き込む為の配列に代入されているデーター数を確認し、０の場合と１以上の場合とに分岐する。データー数が１以上の場合は、黒色データー用のポジティブ画像用データーを書き込む為の配列の末尾に０を代入し、黒色データー用のネガティブ画像用データーを書き込む為の配列の末尾に１を代入します。データー数が０の場合は、何もせずに、つぎの処理を行う。【０１５７】ステップ１０８−１６に進みます。カラーＨ配列とカラーＦ配列にデーターが入っているかどうかを、それぞれ、Ｈ確認変数とＦ確認変数を調べる事で行います。Ｆ確認変数が１以上の場合は、ステップ１０８−１９に進みます。Ｆ確認変数が０の場合は、Ｈ確認変数の数値が０の場合と、Ｈ確認変数が１以上の場合とに分岐します。Ｈ確認変数の数値が０の場合は、Ｈ確認変数に１を加算し、カラー１配列のポジティブ画像用配列に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ０を代入して、最後に、１を代入し、カラー１配列のネガティブ画像用配列に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ１を代入して、最後に、０を代入し、ステップ１０８−２１に進みます。【０１５８】Ｈ確認変数が１以上の場合は、ステップ１０８−１７に進みます。カラーＨ配列に代入されたＲＧＢ形式のカラーデーターに、画素と同じデーターがあった場合と、違うデーターの場合と画素と同じデーターが無かった場合とに分岐します。画素と同じデーターがあった場合は、画素と同じデーターが代入されたカラーＨ配列のインデックスを取得して、その配列に相当するカラー１配列か、または、カラー２配列の末尾に、１を代入し、違うデーターの場合は、検査したカラーＨ配列に相当するカラーＨ配列のインデックスを取得して、その配列に相当するカラー１配列か、または、カラー２配列の末尾に、０を代入し、ステップ１０８−２１に進みます。画素と同じデーターが無かった場合は、ステップ１０８−１８に進みます。【０１５９】ステップ１０８−１８では、Ｈ確認変数が１の場合と２の場合とに分岐します。Ｈ確認変数が１の場合は、Ｈ確認変数に１を加算し、カラーＨ配列に、画素のＲＧＢ形式のカラーデーターを代入します。カラー２配列のポジティブ画像用配列に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ０を代入して、最後に、１を代入し、カラー２配列のネガティブ画像用配列に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ１を代入して、最後に、０を代入します。２の場合は、まず、Ｆ確認変数に１を加算します。次に、カラーＦ配列に、画素のＲＧＢ形式のデーターを代入し、その代入したカラーＦ配列のインデックスを取得して、そのインデックスを付けた名前のファイル名でファイルを作成し、これをその色のポジティブ画像用のデーターを書き込む為のファイルとします。また、これとは、別に拡張子だけ違うファイルを作成し、このファイルをその色のネガティブ画像用のデーターを書き込む為のファイルとします。ポジティブ画像用ファイルの末尾に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ０を記録して、最後に、１を記録し、ネガティブ画像用ファイルの末尾に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ１を記録して、最後に、０を記録します。【０１６０】Ｆ確認変数が１以上の場合は、ステップ１０８−１９に進みます。まず、カラーＨ配列に必ず、２個のＲＧＢ形式のカラーデーターが代入されていますので、カラーＨ配列に代入されたＲＧＢ形式のカラーデーターに、画素と同じデーターがあった場合と、画素と違うデーターの場合と画素と同じデーターが無かった場合とに分岐します。画素と同じデーターがあった場合は、画素と同じデーターが代入されたカラーＨ配列のインデックスを取得して、その配列に相当するカラー１配列か、または、カラー２配列の末尾に、１を代入し、画素と違うデーターの場合は、検査したカラーＨ配列に相当するカラーＨ配列のインデックスを取得して、その配列に相当するカラー１配列か、または、カラー２配列の末尾に、０を代入します。画素と同じデーターが無かった場合は、カラーＦ配列を検査し、画素と同じデーターがあった場合と画素と違うデーターがあった場合と画素と同じデーターが無かった場合とに分岐します。画素と同じデーターがあった場合は、画素と同じデーターがあったカラーＦ配列のインデックスを取得して、そのインデックスを付けたファイルを探し出して、そのファイルの末尾に、ポジティブ画像用データーとして、１を記録します。次に、同じファイル名で、違う拡張子を付けたファイルが作成されているはずですので、このファイルを探し出して、ファイルの末尾に、ネガティブ画像用データーとして、０を代入します。画素と違うデーターがあった場合は、画素と違うデーターがあったカラーＦ配列のインデックスを取得して、そのインデックスを付けたファイルを探し出して、そのファイルの末尾に、ポジティブ画像用データーとして、０を記録します。次に、同じファイル名で、違う拡張子を付けたファイルが作成されているはずですので、このファイルを探し出して、ファイルの末尾に、ネガティブ画像用データーとして、１を代入します。画素と同じデーターが無かった場合は、まず、Ｆ確認変数に１を加算します。次に、カラーＦ配列の末尾に、画素のＲＧＢ形式のデーターを代入し、その代入したカラーＦ配列のインデックスを取得して、そのインデックスを付けた名前のファイル名でファイルを作成し、これをその色のポジティブ画像用のデーターを書き込む為のファイルとします。また、これとは、別に拡張子だけ違うファイルを作成し、このファイルをその色のネガティブ画像用のデーターを書き込む為のファイルとします。ポジティブ画像用ファイルの末尾に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ０を記録して、最後に、１を記録し、ネガティブ画像用ファイルの末尾に、現在の画素数を画素Ｎ変数から取得して、現在の画素数から１減算した回数分だけ１を記録して、最後に、０を記録します。【０１６１】ステップ１０８−２１に進みます。次の画素を検査します。つまり、ステップ１０８−２に処理を戻します。画像の終端に達したら、このループを終了し、次の処理に進みます。【０１６２】ステップ１０９に進みます。色分けされた画像の記録方式によって処理を場合分けし、必ず、全ての場合に於いて、ポティブ画像とネガティブ画像との二種類の画像データーがありますので、処理を繰り返し行います。この場合分けは、以下の様になります。
（１）白画像のみがある場合
（２）黒画像のみがある場合
（３）白画像と黒画像がある場合
（４）白画像とカラー１配列がある場合
（５）黒画像とカラー１配列がある場合
（６）白画像と黒画像とカラー１配列がある場合
（７）白画像とカラー１配列とカラー２配列がある場合
（８）黒画像とカラー１配列とカラー２配列がある場合
（９）白画像と黒画像とカラー１配列とカラー２配列がある場合
（１０）白画像とカラー１配列とカラー２配列と画像データーを書き込んだファイルがある場合
（１１）黒画像とカラー１配列とカラー２配列と画像データーを書き込んだファイルがある場合
（１２）白画像と黒画像とカラー１配列とカラー２配列と画像データーを書き込んだファイルがある場合
場合分けの内、画像データーを書き込んだファイルがある場合だけ、処理が違ってきます。ファイルに記録されている０と１のデーターは、テキスト形式ですから、これを数値データーとして配列に代入する工程が入ります。【０１６３】ステップ１１０に進みます。配列に代入された画像用データーが、１の場合は、黒色とし、０の場合は、白色として、画像を作成します。画像を画素レベルでサーチして、黒色のコードが画素にある場合に画像があると判断させて、配列にその画素のＸ座標とＹ座標をそれぞれ代入し、その配列から、Ｘ座標とＹ座標の最大値と最小値を算出する事によって、画像が書かれている位置を取得します。このＸ座標とＹ座標の最大値と最小値を利用して、画像が書かれている部分だけの画像ファイルを作成して、一度、このファイルを保存します。再度、このファイルを指定して、読み込む際、図符号１５の画像表示用画面をファイルのサイズに合わせて再描画させて、指定したファイルの画像を再描画させた図符号１５の画像表示用画面に表示しなおします。図符号１５の画像表示用画面に表示された画像のサイズを取得します。画像サイズの高さと横の長さを掛け算して画像の最大画素数を求めます。求めた最大画素数のサイズで一次元配列を用意します。この一次元配列の事を０１配列と仮称します。次に、Ｘ座標とＹ座標の最小値の画素から、最大値の画素までをサーチします。画素に黒色のデーターがあった場合は、先に、用意した、０１配列に１を代入し、画素に白色のデーターがあった場合は、先に、用意した、０１配列に０を代入します。次に、この０１配列を最初から最後まで検査します。１が代入されていた場合だけ、その配列のインデックスを取得して、加算します。この計算によって、算出された数値を画像の位置の代表値とします。ここで、得られた画像の位置の代表値と辞書に記録された画像位置の文字フォントデーターと照合します。図符号８のデーターベースに記録された画像位置の文字フォントデーターの内、完全一致を含む最近似値のものから順に、３候補選び出します。完全一致を含む最近似値のものから順に、３候補選び出し方は、常識であろうと思われますが、以下の様に行いました。全てデーターを格納する事が出来るサイズの配列を作成し、この配列をテストデーター配列と仮称します。このテストデーター配列に全てのデーター（辞書に記録された画像位置の文字フォントデーター）を代入します。テストデーター配列と同じサイズの配列を作成します。この配列は、基になる数値と全てのデーターの個々のデーターとの差を格納する為の配列です。これを誤差配列と仮称します。この誤差配列に、基になる数値（画像の位置の代表値）から全てのデーターの個々のデーター（辞書に記録された画像位置の文字フォントデーター）を減算して、差を出してその差の絶対値を代入します。次に、この誤差配列のコピー配列を作成し、このコピー配列を値が小さい順にソートします。値が３個代入できる配列を作成し、この配列をテスト３配列と仮称します。ソートしたコピー配列の上から順番に、このテスト３配列に３個のデーターを代入します。まず、始めに、誤差配列に、テスト３配列の一番目の要素と同じ数値のものがあるかどうかを検査し、同じ数値があったら、誤差配列のインデックスを取得します。誤差配列と、テストデーター配列のインデックスは同じです。従って、テストデーター配列の中から、一番、完全一致を含む近似値である数値を一個抽出した事になります。二個目は、テスト３配列の一番目の要素と同じ数値があった誤差配列のインデックスよりも後の残りを検査すれば良いとなります。つまり、テスト３配列の二番目の数値と同じ数値を誤差配列の残りのデーターの中から探し出す訳です。二番目の数値と同じ数値が見つかったら、誤差配列のインデックスを取得し、テスト３配列の三番目の数値も同じ様に、二番目の数値と同じ数値が見つかった位置よりも後の残りの誤差配列の中から探し出す事によって、３候補を選びだします。【０１６４】ステップ１１１に進みます。図符号１５の画像表示用画面に表示された画像を２画素分縮小（または、収縮）させます。特願２００７−２１７５９３では、１０ポイントの文字を使用したせいか、文字に滲みやかすみなどによって構成されるでこぼこが少ないと思われ、１画素分の縮小（または、収縮）で良い結果が得られましたが、今回の実施では、７２ポイントという大きな文字と、同等の大きさの画像を使用しましたので、画像に滲みやかすみなどによって構成されるでこぼこが多いと思われ、良い結果が得られない様だったので、２画素分縮小（または、収縮）させました。この縮小（または、収縮）させた画像をファイルとして保存します。図符号８のデーターベースに記録された、辞書画像ファイルを保存してあるホルダーの位置を取得して、図符号９のデーターベースに記録された３候補の辞書画像ファイルを選び出します。選び出した３候補の辞書画像ファイルの内、一番、完全一致を含む最近似値の画像を縮小させた画像ファイルに重ね合わせます。この重ね合わせた画像を二重像と仮称します。この二重像をファイルとして、保存し、保存したファイルを二重像ファイルと仮称します。この二重像ファイルを作成する時点では、画像と画像がうまく重なり合う様に、センタリングを行いました。このセンタリングは、画像ファイルの縦と横のサイズの違いによって、場合わけを行う事で行いました。縮小（または、収縮）画像ファイルと、３候補の辞書画像ファイルの縦と横のサイズが同じ場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズが両方ともに、縮小（または、収縮）画像ファイルの縦と横のサイズの方が小さい場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズが両方ともに、３候補の辞書画像ファイルの縦と横のサイズの方が小さい場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズの縦のみが、３候補の辞書画像ファイルの縦のサイズの方が小さい場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズの縦のみが、縮小（または、収縮）画像ファイルの縦のサイズの方が小さい場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズの横のみが、３候補の辞書画像ファイルの横のサイズの方が小さい場合と、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズの横のみが、縮小（または、収縮）画像ファイルの横のサイズの方が小さい場合と、の６種類の場合わけを行いました。場合わけを行った後に、必要に応じて縦と横のサイズ差を算出し、その差を２で割ります。小数点が出た場合は、その数値に小数点以下切り捨てと、小数点以下切り上げを行い、算出された二つの数値の片一方を縦と横の最初のデーターとし、もう一方を縦と横の終端のデーターとします。そうして、縮小（または、収縮）画像ファイルの縦と横のサイズと、３候補の辞書画像ファイルの縦と横のサイズのどちらか大きいサイズの方から除算して、画像ファイルを重ね合わせました。この様にして、作成した二重像ファイルのサイズを算出して、算出したファイルサイズで一次元配列を作成し、その作成した一次元配列に、二重像ファイルをＢｙｔｅ単位で読み込ませます。この一次元配列のデーターを終端まで検査します。０が代入されていた場合は、１として加算して、０以外の場合は、何もしないという計算を行う事で一個の整数値を得ます。この得られた整数値を画像の代表値とし、この代表値を仮称、Ｍ代表値とします。次に、図符号８のデーターベースに記録された、辞書画像ファイルを保存してあるホルダーの位置を取得して、３候補の辞書画像ファイルを選び出します。選び出した３候補の辞書画像ファイルのサイズを調べて、そのサイズで一次元配列を作成し、その作成した一次元配列にＢｙｔｅ単位でファイルを読み込ませます。この一次元配列のデーターを終端まで検査します。０が代入されていた場合は、１として加算して、０以外の場合は、何もしないという計算を行う事で一個の整数値を得ます。この得られた整数値を画像の代表値とし、この代表値を仮称、Ｊ代表値とします。Ｍ代表値と３候補のＪ代表値を比較します。Ｊ代表値からＭ代表値を減算し、その絶対値を算出します。算出した絶対値が小さい値順にソートし、完全一致を含む最近似値のものを選び出します。【０１６５】ステップ１１２に進みます。ステップ１１１で抽出した変換候補のＪ代表値からＭ代表値を減算して求められた絶対値が、図符号１１の誤差値を入力するボックスに入力された数値以下か、または、未満の場合に、この候補を変換候補として、決定し、処理を中断して、選び出した画像に相当する文字列を図符号８のデーターベースから抽出し、図符号１３の変換結果を表示するボックスに、表示して終了します。変換候補が無かった場合は、ステップ１０９に戻って、次の色の画像データーで、繰り返し変換候補が見つかるまで検証します。【０１６６】本発明の実施に於いて、辞書に物体の画像と文字の画像とを混在させて、実施してみたところ、文字をサーチさせているにもかかわらず、第一候補に物体の画像を抽出するという失敗を経験しました。これは、位置による代表値の最近似値が文字ではなく、物体であったという結果であります。最終的には、文字を抽出するという変換結果となりましたが、物体の辞書と文字の辞書は、別個に作成する事が望ましいと考えられる結果でした。従って、上記の様に、辞書を別個にしました。つまり、実施例１では、文字の判読を行わせたのですが、文字の辞書のみで行い、実施例２では、物体の判定を行わせたのですが、物体の辞書のみとしました。
【図面の簡単な説明】
【０１６７】
【図１】実施例に於ける使用機材の説明図です。
【図２】色分離判読ソフトウェアの操作画面
【図３】文字の登録操作画面
【図４】文字の登録を行うフローチャート図
【図５】色分離判読ソフトウェアの簡単なフローチャート図
【図６】色分離工程のみのフローチャート図
【図７】辞書登録した文字の画像１
【図８】辞書登録した文字の画像２
【図９】辞書登録した文字の画像３
【図１０】辞書登録した文字の画像４
【図１１】辞書登録した物体の画像５
【図１２】辞書登録した物体の画像６
【図１３】辞書登録した物体の画像７
【図１４】辞書登録した物体の画像８
【図１５】文字に変換させたい文字と絵が混在した画像もしくは、判定させたい物体を描いた画像１
【図１６】文字に変換させたい文字と絵が混在した画像もしくは、判定させたい物体を描いた画像２
【図１７】文字に変換させたい文字と絵が混在した画像もしくは、判定させたい物体を描いた画像３
【符号の説明】
【０１６８】１：モニター
２：コンピューター本体
３：キーボード
４：マウス
５：スキャナー
６：コンピューターソフトウェアプログラムによる処理
７：人為的な手動による操作もしくは、入力
８：データーベース
９：辞書画像ファイルを保存しているホルダー
１０：メニューの文字の登録ボタン
１１：誤差値を入力するボックス
１２：スキャナー画像ファイルの読み込みボタン
１３：変換結果を表示するボックス
１４：変換実行ボタン
１５：画像を表示する画面
１６：終了ボタン
１７：登録する文字ファイルの読み込みボタン
１８：対応する文字を入力するボックス
１９：登録するボタン
２０：画像を表示する画面
２１：閉じるボタン
【図１】
2010176649.tif 000003
【図２】
2010176649.tif 000004
【図３】
2010176649.tif 000005
【図４】
2010176649.tif 000006
【図５】
2010176649.tif 000007
【図６】
2010176649.tif 000008
【図７】
2010176649.tif 000009
【図８】
2010176649.tif 000010
【図９】
2010176649.tif 000011
【図１０】
2010176649.tif 000012
【図１１】
2010176649.tif 000013
【図１２】
2010176649.tif 000014
【図１３】
2010176649.tif 000015
【図１４】
2010176649.tif 000016
【図１５】
2010176649.tif 000017
【図１６】
2010176649.tif 000018
【図１７】
2010176649.tif 000019