見出し画像

解説クラスCopyClear(6)

解説クラスCopyClear(6)


2024年3月2初講(初稿)

この講義は解説『解説クラスCopyClear(5)』
続きです!

(4-10)画像型検査関数群

先に、解説『画像メモリ概要』で紹介した!
画像を扱う基本としての「画像型」として
クラス【class TypeArray{}】を画像処理ライブラリでは、
使用して行きますが、個別の関数で共通に引数に使用した
場合の引数チェックに使用する関数を紹介して行きます!

public:                                             // TypeArray型の検査

    int     CheckFilterImage(                       // FLT用画像検査
                TypeArray   *ps,                    // S画像
                TypeArray   *pd,                    // D画像
                int         h,                      // 水平Win幅
                int         v                       // 垂直Win幅
            );
    int     CheckFilterImageReal(                   // FLT用画像検査:実数
                TypeArray   *ps,                    // S画像
                TypeArray   *pd,                    // D画像
                int         h,                      // 水平Win幅
                int         v                       // 垂直Win幅
            );
    int     CheckMinMaxFilterImage(                 // MaxMinFlt用画像検査
                TypeArray   *ps,                    // S画像
                TypeArray   *pd,                    // D画像
                int         h,                      // 水平Win幅
                int         v                       // 垂直Win幅
            );
    int     CheckArrayMeasure(                      // 計測結果配列検査
                TypeArray   *pa,                    // 配列
                int         ord,                    // 引数順位 10,20,,,
                int         size                    // 計測結果BUF-SIZE
            );
    int     MultcheckArrayMeasure(                  // 計測結果配列検査×5
                int         ord,                    // 引数順位
                int         size,                   // 計測結果 BufSize
                TypeArray   *p1,                    // 検査配列情報ptr1
                TypeArray   *p2,                    // 検査配列情報ptr2
                TypeArray   *p3,                    // 検査配列情報ptr3
                TypeArray   *p4,                    // 検査配列情報ptr4
                TypeArray   *p5                     // 検査配列情報ptr5
            );
    int     CheckArrayInteger(                      // 配列の検査:整数単位
                TypeArray   *array                  // 配列
            );
    int     CheckImageInteger(                      // 画像の検査:整数単位
                TypeArray   *image,                 // 画像
                int         wa,                     // 画像単位:小
                int         wb                      // 画像単位:大
            );
    int     CheckImageByte(                         // 画像の検査:BYTE単位
                TypeArray   *image                  // 画像
            );
    int     CheckImageWord(                         // 画像の検査:2BYTE単位
                TypeArray   *image                  // 画像
            );
    int     CheckImageByteAndWord(                  // 画像検査:1/2BYTE単位
                TypeArray   *image                  // 画像
            );
    int     CheckImageMeasure(                      // ソース画像の検査
                TypeArray   *ps                     // 画像
            );
    int     CheckArraySort(                         // 複数配列の検査:ソート用
                TypeArray   *p,                     // 配列
                int         n                       // 配列個数 1..100
            );

public:                                             // カラー画像検査&調整

    void    AdjustColorImageSize(                   // 3色画像最小サイズ調整
                TypeArray*  r,                      // 赤色画像
                TypeArray*  g,                      // 緑色画像
                TypeArray*  b,                      // 青色画像
                int&        size_h,                 // 画像の水平サイズ
                int&        size_v                  // 画像の垂直サイズ
            );
    int     CheckColorImageSize(                    // 3色画像最小サイズ算出
                TypeArray*  r,                      // 赤色画像
                TypeArray*  g,                      // 緑色画像
                TypeArray*  b,                      // 青色画像
                int&        size_h,                 // 画像の水平サイズ
                int&        size_v                  // 画像の垂直サイズ
            );

(4-10-1)関数「int CheckFilterImage(
TypeArray* ps,TypeArray* pd,int h,int v);」

    int     CheckFilterImage(                       // FLT用画像検査
                TypeArray   *ps,                    // S画像
                TypeArray   *pd,                    // D画像
                int         h,                      // 水平Win幅
                int         v                       // 垂直Win幅
            );

「Check」は、英単語「Check」で検査を意味します!
「FilterImage」は、画像処理の特徴的な処理項目として「
3×3とか、5×5及びN×Nサイズの局所空間フィルター
」と言う処理で解説『解説クラスFilter(1)』等で
クラス【class Filter:public Calculate{}】の解説を行う
予定です!で記載説明する「空間フィルター」系関数の事で
す!
仮引数「TypeArray* ps,TypeArray* pd,」は、「ps」で
処理する元画像、「pd」で結果画像を示します!
この関数は、画像に対して処理する関数で無く、
仮引数「TypeArray* ps,TypeArray* pd,」に設定して居る
情報≪メンバー変数「int adr;int h;int v;int inc;
chaw;」≫が、使用する関数に合致するか如何の
検査用です!
仮引数「int h,int v」は、ウィンドウサイズと言うサイズ
です★注意★解説『解説クラスFilter(1)』等で
クラス【class Filter:public Calculate{}】の解説を行う
ところで説明します!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-2)関数「int CheckFilterImageReal(
TypeArray* ps,TypeArray* pd,int h,int v);」

    int     CheckFilterImageReal(                   // FLT用画像検査:実数
                TypeArray   *ps,                    // S画像
                TypeArray   *pd,                    // D画像
                int         h,                      // 水平Win幅
                int         v                       // 垂直Win幅
            );

「Check」は、英単語「Check」で検査を意味します!
「FilterImage」は、画像処理の特徴的な処理項目として「
3×3とか、5×5及びN×Nサイズの局所空間フィルター
」と言う処理で解説『解説クラスFilter(1)』等で
クラス【class Filter:public Calculate{}】の解説を行う
予定です!で記載説明する「空間フィルター」系関数の事で
す!
仮引数「TypeArray* ps,TypeArray* pd,」は、「ps」で
処理する元画像、「pd」で結果画像を示します!
この関数は、画像に対して処理する関数で無く、
仮引数「TypeArray* ps,TypeArray* pd,」に設定して居る
情報≪メンバー変数「int adr;int h;int v;int inc;
chaw;」≫が、使用する関数に合致するか如何の
検査用です!
仮引数「int h,int v」は、ウィンドウサイズと言うサイズ
です★注意★解説『解説クラスFilter(1)』等で
クラス【class Filter:public Calculate{}】の解説を行う
ところで説明します!
「Real」は、実数型≪単精度浮動小数点数型「float」及び
倍精度浮動小数点数型「double 」≫の画像メモリへの
関数が対象です!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-3)関数「int CheckMinMaxFilterImage(
TypeArray* ps,TypeArray* pd,int h,int v);」

    int     CheckMinMaxFilterImage(                 // MaxMinFlt用画像検査
                TypeArray   *ps,                    // S画像
                TypeArray   *pd,                    // D画像
                int         h,                      // 水平Win幅
                int         v                       // 垂直Win幅
            );

「Check」は、英単語「Check」で検査を意味します!
「MinMax」は、最小最大を意味します!
「FilterImage」は、画像処理の特徴的な処理項目として「
3×3とか、5×5及びN×Nサイズの局所空間フィルター
」と言う処理で解説『解説クラスFilter(1)』等で
クラス【class Filter:public Calculate{}】の解説を行う
予定です!で記載説明する「空間フィルター」系関数の事で
す!ココでは、画像の最小値フィルター・最大値フィルター
及びランキングフィルターを意味します!
仮引数「TypeArray* ps,TypeArray* pd,」は、「ps」で
処理する元画像、「pd」で結果画像を示します!
この関数は、画像に対して処理する関数で無く、
仮引数「TypeArray* ps,TypeArray* pd,」に設定して居る
情報≪メンバー変数「int adr;int h;int v;int inc;
chaw;」≫が、使用する関数に合致するか如何の
検査用です!
仮引数「int h,int v」は、ウィンドウサイズと言うサイズ
です★注意★解説『解説クラスFilter(1)』等で
クラス【class Filter:public Calculate{}】の解説を行う
ところで説明します!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-4)関数「int CheckArrayMeasure(
TypeArray* pa,int ord,int size);」

    int     CheckArrayMeasure(                      // 計測結果配列検査
                TypeArray   *pa,                    // 配列
                int         ord,                    // 引数順位 10,20,,,
                int         size                    // 計測結果BUF-SIZE
            );

「Check」は、英単語「Check」で検査を意味します!
「Array」は、配列を意味し画像では、有りません!
「Measure」は、英単語「Measure」で測定を意味します!
「ArrayMeasure」として測定結果を格納する配列とし!
ここでは、仮引数「TypeArray* pa,」が一次元配列の
計測結果格納配列として正しい情報≪メンバー変数
「int adr;int h;int v;int inc;chaw;」≫が、使用する
関数に合致するか如何の検査用です!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-5)関数「int MultcheckArrayMeasure(
int ord,int size,
TypeArray* p1,TypeArray* p2,
TypeArray* p3,TypeArray* p4,
TypeArray* p5);」

    int     MultcheckArrayMeasure(                  // 計測結果配列検査×5
                int         ord,                    // 引数順位
                int         size,                   // 計測結果 BufSize
                TypeArray   *p1,                    // 検査配列情報ptr1
                TypeArray   *p2,                    // 検査配列情報ptr2
                TypeArray   *p3,                    // 検査配列情報ptr3
                TypeArray   *p4,                    // 検査配列情報ptr4
                TypeArray   *p5                     // 検査配列情報ptr5
            );

「Mult」は、「multiple」の略称として「多数の」を意味!
「Check」は、英単語「Check」で検査を意味します!
「Array」は、配列を意味し画像では、有りません!
「Measure」は、英単語「Measure」で測定を意味します!
「ArrayMeasure」として測定結果を格納する配列とし!
ここでは、仮引数「TypeArray* pa,」が一次元配列の
計測結果格納配列として正しい情報≪メンバー変数
「int adr;int h;int v;int inc;chaw;」≫が、使用する
関数に合致するか如何の検査用です!
「MultcheckArray」として多数の測定結果を格納する配列
を検査すると解釈して下さい!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-6)関数「int CheckArrayInteger(
TypeArray* array);」

    int     CheckArrayInteger(                      // 配列の検査:整数単位
                TypeArray   *array                  // 配列
            );

「Check」は、英単語「Check」で検査を意味します!
「Array」は、配列を意味し画像では、有りませんが、
配列として使用する場合に不都合が有るか否かを検査する
関数です!「Integer」と整数型に関して使用する必要が
有る関数が対象です!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-7)関数「int CheckImageInteger(
TypeArray* image,int wa,int wb);」

    int     CheckImageInteger(                      // 画像の検査:整数単位
                TypeArray   *image,                 // 画像
                int         wa,                     // 画像単位:小
                int         wb                      // 画像単位:大
            );

「Check」は、英単語「Check」で検査を意味します!
「ImageInteger」は、整数型の画像として使用する場合に
不都合が有るか否かを検査する関数です!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-8)関数「int CheckImageBYTE (
TypeArray* image);」

    int     CheckImageByte(                         // 画像の検査:BYTE単位
                TypeArray   *image                  // 画像
            );

「Check」は、英単語「Check」で検査を意味します!
「ImageBYTE 」は、「BYTE型」の画像として使用する場合に
不都合が有るか否かを検査する関数です!
★注意★「BYTE型」の画像を扱うのが、この画像処理ライブ
ラリの基本の基なので特に多く使用します!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-9)関数「int CheckImageWord(
TypeArray* image);」

    int     CheckImageWord(                         // 画像の検査:2BYTE単位
                TypeArray   *image                  // 画像
            );

「Check」は、英単語「Check」で検査を意味します!
「ImageWord」は、「2バイト構成型≪C言語では、
short型・unsigned short型≫」の画像として使用する
場合に不都合が有るか否かを検査する関数です!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-10)関数「int CheckImageByteAndWord(TypeArray* image);」

    int     CheckImageByteAndWord(                  // 画像検査:1/2BYTE単位
                TypeArray   *image                  // 画像
            );

「Check」は、英単語「Check」で検査を意味します!
「ImageByteAndWord」は、「BYTE型」の画像及び
「2バイト構成型≪C言語では、short型・
unsigned short型≫」の画像として使用する場合に
不都合が有るか否かを検査する関数です!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-11)関数「int CheckImageMeasure(TypeArray* ps);」

    int     CheckImageMeasure(                      // ソース画像の検査
                TypeArray   *ps                     // 画像
            );

「Check」は、英単語「Check」で検査を意味します!
「ImageMeasure」は、「2値化画像から図形的特徴を計測す
る為の対象」画像用の画像情報検査関数です!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-12)関数「int CheckArraySort(
TypeArray* p,int n);」

    int     CheckArraySort(                         // 複数配列の検査:ソート用
                TypeArray   *p,                     // 配列
                int         n                       // 配列個数 1..100
            );

「Check」は、英単語「Check」で検査を意味します!
「ArraySort」は、主にソート関数を適応する複数の
データ配列に対する検査関数です!
仮引数「int n」で仮引数「TypeArray* p,」のポインタで
示される配列の数を示します!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-13)関数「void AdjustColorImageSize(
TypeArray* r,TypeArray* g,TypeArray* b,
int &size_h,int &size_v);」

    void    AdjustColorImageSize(                   // 3色画像最小サイズ調整
                TypeArray*  r,                      // 赤色画像
                TypeArray*  g,                      // 緑色画像
                TypeArray*  b,                      // 青色画像
                int&        size_h,                 // 画像の水平サイズ
                int&        size_v                  // 画像の垂直サイズ
            );

「Adjust」は、英単語「Adjust」カタカナ語でもアジャスト
と調整するの意味です!
「ColorImage」は、カラーイメージ詰り、3枚の画像、
仮引数「TypeArray* r,TypeArray* g,TypeArray* b,」と
三原色「赤(r)・緑(g)・青(b)」で現わされる
画像情報「TypeArray型」を「Size」と関数名に付いて
居る様にサイズを調整する関数です!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

(4-10-14)関数「int CheckColorImageSize(
TypeArray* r,TypeArray* g,TypeArray* b,
int &size_h,int &size_v);」

    int     CheckColorImageSize(                    // 3色画像最小サイズ算出
                TypeArray*  r,                      // 赤色画像
                TypeArray*  g,                      // 緑色画像
                TypeArray*  b,                      // 青色画像
                int&        size_h,                 // 画像の水平サイズ
                int&        size_v                  // 画像の垂直サイズ
            );

「Check」は、英単語「Check」で検査を意味します!
「ColorImage」は、カラーイメージ詰り、3枚の画像、
仮引数「TypeArray* r,TypeArray* g,TypeArray* b,」と
三原色「赤(r)・緑(g)・青(b)」で現わされる
画像情報「TypeArray型」を検査する関数です!
★詳細★は、後で説明:【ファイル「CopyClear000.cpp」が
対象】します!

★備考★
解説『解説クラスTypeArray』でも記載したが、
noteエディタの変な特性でコピペした文章の半角「*」
が消されたり、空白「 」が消される事が多々あります!
注意して手作業で修正している筈ですが、必ず、code
機能で表示して居る物を正しいとして確認して下さい

ここで一旦、切れが良い「画像型検査関数群」での
「public」属性の関数紹介が終わったので3月2日分迄の
講義とします!

続きは、「解説クラスCopyClear(7)」に成り
ます!
(7)」では、元々サブルーチンとして作成したので
「private」属性を付けていたが「public」属性の方が
都合が良い関数にした各関数を紹介します!
引き続き御贔屓して受講して下さい!

文末

この記事が気に入ったらサポートをしてみませんか?