「lmrcImagePad(API)」の版間の差分
提供: Eospedia
(→API) |
(→API) |
||
| 行39: | 行39: | ||
== API == | == API == | ||
===パディング=== | ===パディング=== | ||
| − | メイン | + | ==== メイン ==== |
extern void lmrcImagePad(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, lmrcImagePadMode mode); | extern void lmrcImagePad(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, lmrcImagePadMode mode); | ||
引数のmodeによって、以下の中から処理のいずれかが実行されます。<br> | 引数のmodeによって、以下の中から処理のいずれかが実行されます。<br> | ||
| 行46: | 行46: | ||
mode=15: __lmrcImagePadTiltImageを実行します。<br> | mode=15: __lmrcImagePadTiltImageを実行します。<br> | ||
<br> | <br> | ||
| − | + | ||
| + | ==== 平均値でパディング ==== | ||
| + | inの平均値でパディングします。 | ||
extern void __lmrcImagePad0(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | extern void __lmrcImagePad0(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | ||
<table border="1"> | <table border="1"> | ||
| 行68: | 行70: | ||
<br> | <br> | ||
| + | inの左右端の平均値でパディングします。 | ||
extern void __lmrcImagePad1(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | extern void __lmrcImagePad1(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | ||
| + | <table border="1"> | ||
| + | <tr> | ||
| + | <th>出力画像outの要素</th> | ||
| + | <th>処理結果</th> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td>入力画像inの配置</td> | ||
| + | <td>中央配置</td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td>in内のデータ</td> | ||
| + | <td>+ info->Value - (inの左右端の平均値)</td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td>in外のデータ</td> | ||
| + | <td>info->Value</td> | ||
| + | </tr> | ||
| + | </table> | ||
| + | <br> | ||
| + | |||
extern void __lmrcImagePad2(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | extern void __lmrcImagePad2(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | ||
| + | |||
| + | inの周辺の平均値でパディングします。 | ||
extern void __lmrcImagePad3(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | extern void __lmrcImagePad3(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | ||
| + | <table border="1"> | ||
| + | <tr> | ||
| + | <th>出力画像outの要素</th> | ||
| + | <th>処理結果</th> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td>入力画像inの配置</td> | ||
| + | <td>中央配置</td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td>in内のデータ</td> | ||
| + | <td>+ info->Value - (inの周辺の平均値)</td> | ||
| + | </tr> | ||
| + | <tr> | ||
| + | <td>in外のデータ</td> | ||
| + | <td>info->Value</td> | ||
| + | </tr> | ||
| + | </table> | ||
| + | <br> | ||
| + | |||
extern void __lmrcImagePad4(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | extern void __lmrcImagePad4(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | ||
extern void __lmrcImagePad5(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | extern void __lmrcImagePad5(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); | ||
2014年10月10日 (金) 05:43時点における版
DataManip/mrcImage/src/lmrcImagePadはmrcImagePadのためのAPI です。
定数
lmrcImagePadのmodeで使用します。
typedef enum lmrcImagePadMode {
lmrcImagePadModeAverage = 0,
lmrcImagePadModeAveragedYAxis = 1,
lmrcImagePadModeDynamicAveragedYAxis = 2,
lmrcImagePadModeAveragedEdge = 3,
lmrcImagePadModeBottomLeft = 4,
lmrcImagePadModeCenterWithoutAveraging = 5,
lmrcImagePadModeBottomLeftWithoutAveraging= 6,
lmrcImagePadModeAveragedOutsideCircle = 7,
lmrcImagePadModeAveragedOutsideRing = 8,
lmrcImagePadModeByValue = 9,
lmrcImagePadModePeripheryMaskingByValue = 10,
lmrcImagePadModeNormalizedByBgAvgAndBgAvgOffset = 11,
lmrcImagePadModeNormalizedByImgVarAndImgAvgOffset = 12,
lmrcImagePadModeNormalizedByBgVarAndBgAvgOffset = 13,
lmrcImagePadModeNormalizedByDifferenceBeteweenImgAvgAndBgAvg = 14,
lmrcImagePadModeTiltedImageCircleAverage = 15
} lmrcImagePadMode;
構造体
APIを使用するときの設定データとして使用します。
typedef struct lmrcImagePadInfo {
mrcImageParaTypeInteger Width;
mrcImageParaTypeInteger Height;
mrcImageParaTypeReal Value;
mrcImageParaTypeReal AWSize;
mrcImageParaTypeReal AWMin;
mrcImageParaTypeReal AWMax;
mrcImageParaTypeReal ExpectedValue;
int flagExpectedValue;
mrcImageParaTypeReal TiltAxisAngle;
mrcImageParaTypeReal TiltAngle;
} lmrcImagePadInfo;
API
パディング
メイン
extern void lmrcImagePad(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, lmrcImagePadMode mode);
引数のmodeによって、以下の中から処理のいずれかが実行されます。
outのヘッダはinと同じに、サイズは(info->Width, info->Height)として設定します。
mode=XX: __lmrcImagePadXX を実行します。
mode=15: __lmrcImagePadTiltImageを実行します。
平均値でパディング
inの平均値でパディングします。
extern void __lmrcImagePad0(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode);
| 出力画像outの要素 | 処理結果 |
|---|---|
| 入力画像inの配置 | 中央配置 |
| in内のデータ | + info->Value - (inの平均値) |
| in外のデータ | info->Value |
inの左右端の平均値でパディングします。
extern void __lmrcImagePad1(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode);
| 出力画像outの要素 | 処理結果 |
|---|---|
| 入力画像inの配置 | 中央配置 |
| in内のデータ | + info->Value - (inの左右端の平均値) |
| in外のデータ | info->Value |
extern void __lmrcImagePad2(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode);
inの周辺の平均値でパディングします。
extern void __lmrcImagePad3(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode);
| 出力画像outの要素 | 処理結果 |
|---|---|
| 入力画像inの配置 | 中央配置 |
| in内のデータ | + info->Value - (inの周辺の平均値) |
| in外のデータ | info->Value |
extern void __lmrcImagePad4(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePad5(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePad6(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePad7(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePad8(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePad9(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePad10(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePad11(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePad12(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePad13(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePad14(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode); extern void __lmrcImagePadTiltImage(mrcImage* out, mrcImage* in, lmrcImagePadInfo* info, long mode);
API情報の出力
APIで使用するのモード説明を出力します。
extern void lmrcImagePadModePrint(FILE* fpt);