// 以下の ifdef ブロックは DLL から簡単にエクスポートさせるマクロを作成する標準的な方法です。 // この DLL 内のすべてのファイルはコマンドラインで定義された MEIA_EXPORTS シンボル // でコンパイルされます。このシンボルはこの DLL が使用するどのプロジェクト上でも未定義でなけ // ればなりません。この方法ではソースファイルにこのファイルを含むすべてのプロジェクトが DLL // からインポートされたものとして MEIA_API 関数を参照し、そのためこの DLL はこのマク // ロで定義されたシンボルをエクスポートされたものとして参照します。 #ifdef MEIA_EXPORTS #define MEIA_API __declspec(dllexport) #else #define MEIA_API __declspec(dllimport) #endif //こっからカキコ。 //WIN32API //内部関数 extern int tm_inf_in(int id, int *mx, int *my);// id_inf.tmpファイルからの読込 extern int tm_inf_out(int id, int mx, int my);//id_inf.tmpファイルへの書込 extern int tm_im_in(int id, double id_mon[]);// id_im.tmpファイルからの読込 extern int tm_im_out(int id, double id_mon[]);//id_im.tmpファイルへの書込 //monファイルを開く。 //正確にはfnameのファイル(mon)を開いて、id番号のtmpファイルと、x、yを保存したinfファイルを作成。 MEIA_API int __stdcall Openim(char fname[], int mx, int my, int id, double id_mon[]); //csvファイル開く //正確にはfnameのファイル(csv)を開いて、id番号のtmpファイルと、x、yを保存したinfファイルを作成。 MEIA_API int __stdcall Opencsv(char fname[], int mx, int my, int id, double id_mon[]); //idとid_mon、mx、myから一時画像ファイルとインフォメーションファイルを作成。 MEIA_API int __stdcall Openxim(int mx, int my, int id, double id_mon[]); //idから一時画像ファイルの画像を、id_monに返す。 MEIA_API int __stdcall Toutim(int id, double id_mon[]); //monファイルを保存。 //正確にはfnameのファイル名にid番号のtmpファイルを保存。 MEIA_API int __stdcall Saveim(char fname[], int id, double id_mon[]); //csvファイルを保存。 //正確にはfnameのファイル名にid番号のtmpファイルをcsv形式として保存。 MEIA_API int __stdcall Savecsv(char fname[], int id, double id_mon[]); //idからmxとmyを返す。 //ただし、一度画像を読み込んだものに限る。 MEIA_API int __stdcall Xyretid(int id, int *mx, int *my); //コントラスト改善 //stpix〜enpixの間でidの画像を平坦化して、tmpに返す。 MEIA_API int __stdcall Conim(int stpix, int enpix, int id, double id_mon[]); //メディアンフィルタ MEIA_API int __stdcall Medim(int id, double id_mon[]); //差分処理 //使用画像のmx,myは全て同一の必要あり。 //id1-id2=id MEIA_API int __stdcall Dpim(int id1, int id2, int id, double id_mon[], double id_mx[]); //2値化 //thrはしきい値。 MEIA_API int __stdcall Segmim(int thr, int id, double id_mon[]); //オーバー値補正 //256階調を超えたものやマイナス値を補正する処理。 MEIA_API int __stdcall Rofim(int id, double id_mon[]); //エッジ //エッジ処理。そのまんま。 MEIA_API int __stdcall Edgeim(int id, double id_mon[]); //ダストマーダー //ゴミ消し。2値化画像に MEIA_API int __stdcall Dmim(int id, double id_mon[]); //反転 //そのまんま。 MEIA_API int __stdcall Rdim(int id, double id_mon[]); //あんどぅ //やり直し処理。undo MEIA_API int __stdcall Undoim(int id, double id_mon[], double id_m1[]); //ヒストグラム //thrとして、二値化しきい値を返す。<moe=0で集計最大値を、moe=1で集計平均値を。 //filenam_hdat.csvを返す。 MEIA_API int __stdcall Hist(int moa, int *thr, int filenam, int id, double id_mon[]); //ラインヒスト //X軸のlx番目の濃度値を引き出す。 //re=1の時、差分処理。 //filenam_lhxdat.csv及びfilenam_lhydat.csvを返す。 MEIA_API int __stdcall Lhist(int lx, int filenam, int re, int id, double id_mon[]); //ハフ変換 //id画像の(hfx1,hfy1)-(hfx2,hfy2)の矩形領域をハフ変換 //pifはπの分割ステップ数。180度を何度おきに分割するか。 //18度おきにする時はpif=18 > π方向極座標の計算を10回する //mfigにて最大交点数を返す。 //y = la * x + lb MEIA_API int __stdcall Hcc(int hfx1, int hfy1, int hfx2, int hfy2, int *mfig, double pif, double *la, double *lb, int id, double id_mon[], double hf[]); //矩形保存 //id画像の(hfx1,hfy1)-(hfx2,hfy2)の矩形領域をfnameのファイルに保存。 //mon形式 MEIA_API int __stdcall Savert(char fname[], int hfx1, int hfy1, int hfx2, int hfy2, int id, double id_mon[]); //左右上下反転 //hec=0 左右反転 hec=1 上下反転 //tmp及びid_monに返す。id_tは一次領域。 MEIA_API int __stdcall Turnim(int hec, int id, double id_mon[], double id_t[]);